語法:
find [PATH] [option] [action]
# 與時間有關的參數:
-mtime n : n為數字,意思為在n天之前的“一天內”被更改過的文件;
-mtime +n : 列出在n天之前(不含n天本身)被更改過的文件名;
-mtime -n : 列出在n天之內(含n天本身)被更改過的文件名;
-newer file : 列出比file還要新的文件名
# 例如:
find /root -mtime 0 # 在當前目錄下查找今天之內有改動的文件
# 與用戶或用戶組名有關的參數:
-user name : 列出文件所有者為name的文件
-group name : 列出文件所屬用戶組為name的文件
-uid n : 列出文件所有者為用戶ID為n的文件
-gid n : 列出文件所屬用戶組為用戶組ID為n的文件
# 例如:
find /home/ljianhui -user ljianhui # 在目錄/home/ljianhui中找出所有者為ljianhui的文件
# 與文件權限及名稱有關的參數:
-name filename :找出文件名為filename的文件
-size [+-]SIZE :找出比SIZE還要大(+)或小(-)的文件
-tpye TYPE :查找文件的類型為TYPE的文件,TYPE的值主要有:一般文件(f)、設備文件(b、c)、
目錄(d)、連接文件(l)、socket(s)、FIFO管道文件(p);
-perm mode :查找文件權限剛好等于mode的文件,mode用數字表示,如0755;
-perm -mode :查找文件權限必須要全部包括mode權限的文件,mode用數字表示
-perm +mode :查找文件權限包含任一mode的權限的文件,mode用數字表示
# 例如:
find / -name passwd # 查找文件名為passwd的文件
find . -perm 0755 # 查找當前目錄中文件權限的0755的文件
find . -size +12k # 查找當前目錄中大于12KB的文件,注意c表示byte
1. 想查看當前文件夾及子文件夾里有沒有文件名為“abc”的文件
find . -name abc
. :表示當前目錄
-name:表示要根據名稱查找
2. 想查看當前文件夾及子文件夾里有沒有”xyz”目錄
find . -type d -name xyz
-type:表示設定類型,d表示文件夾類型,可以替換為f(普通文件)、l(鏈接文件)
3. 想找出當前文件夾及子文件夾里所有后綴是”.txt”的文件
find . -name “*.txt”
4. 想查找當前目錄及其子文件夾中“roc”用戶自己的文件有哪些
find . -user roc
-user:用于設定所屬用戶的名稱,此處可替換為-group,即所屬用戶組的名稱
5. 想查找當前文件夾及子文件夾里權限設定為755的所有文件
find . -perm 755
-perm:用于設定權限
6. 想查找當前文件夾及子文件夾里的同時含有b字符和3字符的文件:用到正則表達式技術
find . -regex ‘.b.3’
-regex:表示使用正則表達式進行匹配。請注意,此命令會和“全路徑”進行匹配,也就是說前面要加.*,因為輸出結果中會有“./”符號。
7. 如果想全部輸出用find命令查找出的”*.abc”文件的內容
find . -type f -name “*.abc” -exec cat {} ;
-exec 表示由find找到的匹配項會作為“-exec后面設定的命令”的參數
可以使用-ok代替-exec,這樣對每個匹配項進行操作,都會要求用戶確認(y為是,n為否)
命令最后的{} ; 別忘了寫,其中{}代表用find查找到的結果中的每一個查找項。
8. 查找當前目錄下在5分鐘內被訪問過的文件
find . -amin -5
訪問過用amin,修改過用mmin,文件狀態改變過用cmin
精確到分鐘的用amin,mmin,cmin,精確到天的用atime,mtime,ctime
在5分鐘之內的用-5,在5分鐘以上的用+5
9. 想查找當前目錄及子目錄下文件大小大于10M的所有文件
find . -size +10000000c
-size:表示文件大小,+表示大于某個數,-表示小于某個數。c表示單位是字節,你可以將c換成k,M,G。
10. 上述所有的find命令都是查找當前目錄及其子目錄。如果不想深入到子目錄中,而是只查找當前一層目錄,則可以:
find . -maxdepth 1 -name “*.c”