find命令相對於grep命令要復雜一些。
通過幾個比較典型的find用法來學習find命令
find . -type f -exec ls -l {} \;
從當前文件夾中查找普通文件,並且對每個匹配的文件執行“ls -l {}”操作;
-type表示按照文件類型來查找文件:
b - 塊設備文件。
d - 目錄。
c - 字符設備文件。
p - 管道文件。
l - 符號鏈接文件。
f - 普通文件。
find logs -type f -mtime +5 -exec rm {} \;
從logs文件夾中查找最后修改日期在5天前的文件,並且刪除它們;
-mtime:Modify Time
-atime: Access Time
-ctime: Create Time
find /etc -name "passwd*" -exec grep "sam" {} \;
從/etc文件夾中查找文件名以“passwd”開頭的所有文件中,是否有“sam”字符串;
-name 后面的表達式不是正則表達式,而是通配符,“*.txt”,"*[lL]inux*"等等。
主要選項:
-name:按照文件名查找文件。
-perm:按照文件權限來查找文件。
-prune:使用這一選項可以使f i n d命令不在當前指定的目錄中查找,如果同時使用-depth選項,那么-prune將被f i n d命令忽略。
-user: 按照文件屬主來查找文件。
-group:按照文件所屬的組來查找文件。
-mtime -n +n:按照文件的更改時間來查找文件, - n表示文件更改時間距現在n天以內,+ n表示文件更改時間距現在n天以前。F i n d命令還有- a t i m e和- c t i m e選項,但它們都和- m t i m e選項。
-nogroup:查找無有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。
-nouser:查找無有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。
-newer file1 ! file2:查找更改時間比文件f i l e 1新但比文件f i l e 2舊的文件。
-type 查找某一類型的文件
-size 按文件大小查找,+100c,表示大於100字節,-10,表示小於10塊(1塊為512字節)
每個具體的選項,只好等到實際工作需要的時候再練習吧。
