【Linux】find命令
用途
find命令用於在指定目錄下查詢檔案。
全稱
無
引數
-name :後跟需要匹配的檔名模式,需要使用引號引起來
下面是一些簡單的示例查詢:(~表示$HOME目錄)
1.查詢當前$HOME下'.log'結尾的檔案
find ~ –name "*.log" –print
2.當前目錄與子目錄下查詢所有'.log'結尾的檔案
find . –name "*.log" –print
3.當前目錄與子目錄下查詢檔名以一個大寫字母開頭的檔案
find . –name "[A-Z]" –print
4.在/etc目錄下查詢檔名以host開頭的檔案
find /etc –name "host*" –print
5.在當前目錄查詢檔名以一個小寫字母開頭,最後是4到9加上.txt結束的檔案
find . –name "[a-z]*[4-9].txt" –print
-iname :根據檔名查詢檔案,不區分大小寫
1.查詢檔名為.log結尾的檔案,不區分大小寫
find . –iname "*.log" –print
-perm :後跟檔案許可權,按檔案許可權模式來查詢檔案
1.查詢當前目錄下檔案許可權為777的檔案
find . –perm 777 –print
-prune :忽略某個目錄
1.希望在tmp下查詢,但不希望在/tmp/tmp1下查詢
find test –path "/tmp/tmp1" –prune –o –print
2.希望在tmp下查詢,但不希望在/tmp/tmp1、/tmp/tm2、/tmp/tmp3等多個資料夾下查詢
find test \(–path tmp/tmp1 –o –path tmp/tmp2 –o –path tmp/tmp2 \) –prune –o –print
-user與nouser :根據檔案屬主查詢與查詢屬主賬戶已經被刪除的檔案
1.查詢檔案屬主為qinys的所有檔案
find ~ –user qinys –print
2.查詢刪除使用者Tom的檔案
find /home –nouser –print
-group與nogroup :根據檔案屬於的使用者組查詢與查詢屬使用者組已經被刪除的檔案
1.查詢檔案屬主為qinys的所有檔案
find ~ –group gp1 –print
2.查詢刪除使用者Tom的檔案
find /home –nogroup –print
-mtime\atime\ctime :根據更改時間或者訪問時間等查詢檔案
1.在根目錄下查詢更改時間在5日以內的檔案
find / –mtime -5 –print
2.查詢/home目錄下3日以前的檔案
find / –mtime +3 –print
-newer :查詢更改時間比某個檔案新但另外一個檔案舊的所有檔案
語法:new_file_name ! old_file_name
其中!是邏輯非符號
1.查詢更改時間比檔案a.log新,但比檔案b.log舊的檔案(假如現在是在目錄/home下)
find –newer a.log ! -newer b.log
2.查詢更改時間比tmp.log新的檔案
find . –newer tmp.log
-size :根據檔案大小來查詢檔案(這裡的檔案長度既可以使用塊來計量,也可以使用位元組來計量)
1.查詢當前目錄下檔案長度大於1M位元組的檔案
find . –size +1000000c –print
2.在目錄/home下查詢檔案長度恰好為100位元組的檔案
find . –size 100c –print
3.在當前目錄下查詢長度超過10塊的檔案(一塊等於512位元組)
find . –size +10 –print
-type :查詢某一型別的檔案,諸如:
b - 塊裝置檔案。
d - 目錄。
c - 字元裝置檔案。
p - 管道檔案。
l - 符號連結檔案。
f - 普通檔案。
案例
1.在目錄中查詢更改時間在6日以前的檔案並刪除他們(注:今天是20190109)
從上圖我們可以看出,符合查詢的檔案test.sh已經被刪除
2.在目錄中查詢更改時間在1日以前後綴為.log的檔案並刪除他們,刪除時候提示