說起find這個命令很基礎也很重要,用好了可以幹很多事情,引數也很多,筆者也不一一贅述,挑常用的說說。
用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [ path...] [expression]
主要部分find 後緊跟要搜尋的目錄,比如搜尋/usr 就是find /usr
關於引數我就說幾個比較重要的:
1、-type 用於搜尋的型別,比如d為目錄 ,l 為軟連結,f 為檔案,f用的多。
比如搜尋/usr的檔案,就是:
find /usr -type f
2、-name xxx 搜尋檔名,這個最常用。為啥呢,搜尋檔名呀,都是用這個。注意的時候這個地方的名稱是支援泛查詢的,比如要查詢python原檔案,可以用:
find /usr/ -type f -name *.py
結果如下(各個機器可能結果不一樣)
3、-mtime n 檔案修改時間,類似的有-atime 建立時間 -ctime 訪問時間 。為啥這個常用呢,主要用它查檔案變化,比如網站目錄被篡改了,用這個一查就查的到,蟲蟲有個一個模組就是基於這個來防止網站被篡改的,我的早期的文章中有寫,關注蟲蟲就能看得到。
比如網站目錄中,我們要查詢下最近7天內變化的檔案,就可以用下面的命令(假設網站更目錄為/web):
find /web -type f -mtime -7
注意 -mtime 後面數字n 表示n天 +n表示超過n天 ,-n表示n天內。
4、-perm 根據許可權查詢,比如
find ~ -perm 0700 查詢你當前使用者目錄下檔案許可權為使用者可讀寫執行的。
5、-size (+-)n[mkc], 根據檔案大小查詢,比如查詢檔案大小為小於10k的
find ~ -size -10k
注意,加減表示大於小於不帶的話是恰好,m是兆位元組,k是千位元組,c位元組,這個值和預設ls -l出來大小不帶單位的值類似:上面截圖展示了,我們搜尋大小 5682c的檔案,恰好就是ls -al顯示出來的大小5682的 .viminfo檔案。
其他更多引數就不多說了。
find 可以和其他命令組合用,比如find搜出來的檔案列表,可以用grep 在做下搜尋,比如搜尋python原始檔,還可以用
find /usr -type f |grep "\.py"
可以用find生成檔案列表,把列表傳遞個grep 對檔案做搜尋
比有兩個檔案 a,b內容如下:我們搜尋兩個檔案中包含hello word的行:
grep "hello word" `find -type f`
搜尋包含chongchong的行:
grep "chongchong" `find -type f`注意上面find -type f外面是反引號,表示執行,就是Esc下面那個符號。
藉助find可以做很多事情:
find -type f -size 0 -exec rm {} \;
find -type f -mtime +30 rm {} \;
這個在很多自動化任務指令碼中應該有,注意要加上-type f 不然,目錄會被誤刪。
好了關於find 今天就隨手寫這麼多,如果喜歡請關注蟲蟲,蟲蟲可以寫更多的內容。
說起find這個命令很基礎也很重要,用好了可以幹很多事情,引數也很多,筆者也不一一贅述,挑常用的說說。
find 格式:用法: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [ path...] [expression]
主要部分find 後緊跟要搜尋的目錄,比如搜尋/usr 就是find /usr
關於引數我就說幾個比較重要的:
1、-type 用於搜尋的型別,比如d為目錄 ,l 為軟連結,f 為檔案,f用的多。
比如搜尋/usr的檔案,就是:
find /usr -type f
2、-name xxx 搜尋檔名,這個最常用。為啥呢,搜尋檔名呀,都是用這個。注意的時候這個地方的名稱是支援泛查詢的,比如要查詢python原檔案,可以用:
find /usr/ -type f -name *.py
結果如下(各個機器可能結果不一樣)
3、-mtime n 檔案修改時間,類似的有-atime 建立時間 -ctime 訪問時間 。為啥這個常用呢,主要用它查檔案變化,比如網站目錄被篡改了,用這個一查就查的到,蟲蟲有個一個模組就是基於這個來防止網站被篡改的,我的早期的文章中有寫,關注蟲蟲就能看得到。
比如網站目錄中,我們要查詢下最近7天內變化的檔案,就可以用下面的命令(假設網站更目錄為/web):
find /web -type f -mtime -7
注意 -mtime 後面數字n 表示n天 +n表示超過n天 ,-n表示n天內。
4、-perm 根據許可權查詢,比如
find ~ -perm 0700 查詢你當前使用者目錄下檔案許可權為使用者可讀寫執行的。
5、-size (+-)n[mkc], 根據檔案大小查詢,比如查詢檔案大小為小於10k的
find ~ -size -10k
注意,加減表示大於小於不帶的話是恰好,m是兆位元組,k是千位元組,c位元組,這個值和預設ls -l出來大小不帶單位的值類似:上面截圖展示了,我們搜尋大小 5682c的檔案,恰好就是ls -al顯示出來的大小5682的 .viminfo檔案。
其他更多引數就不多說了。
find 和其他命令配合find 可以和其他命令組合用,比如find搜出來的檔案列表,可以用grep 在做下搜尋,比如搜尋python原始檔,還可以用
find /usr -type f |grep "\.py"
可以用find生成檔案列表,把列表傳遞個grep 對檔案做搜尋
比有兩個檔案 a,b內容如下:我們搜尋兩個檔案中包含hello word的行:
grep "hello word" `find -type f`
搜尋包含chongchong的行:
grep "chongchong" `find -type f`注意上面find -type f外面是反引號,表示執行,就是Esc下面那個符號。
藉助find可以做很多事情:
find -type f -size 0 -exec rm {} \;
find -type f -mtime +30 rm {} \;
這個在很多自動化任務指令碼中應該有,注意要加上-type f 不然,目錄會被誤刪。
好了關於find 今天就隨手寫這麼多,如果喜歡請關注蟲蟲,蟲蟲可以寫更多的內容。