find指令行選擇
-name 按照檔案名查找檔案
-perm 按照檔案權限查找檔案
-prune 忽略目錄
-user 按照檔案屬主查找
-group 按照檔案所屬的組來查找檔案
-mtime -n +n 按照檔案的更改時間來查找檔案,-n表示檔案更改時間距現在n天以内,+n表示檔案更改時間距現在n天以前
-nogroup 查找無有效屬組的檔案、即該檔案所屬的組在/etc/groups中不存在
-nouser 查找無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在
-newfile file1 ! file2 查找更改時間比檔案file1新但比檔案file2舊的檔案
-type 查找某一類型的檔案,諸如:
b 塊裝置檔案
d 目錄
c 字元裝置檔案
p 管道檔案
l 符号連結檔案
f 普通檔案
-size n[c] 查找檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計
-depth 在查找檔案是,首先查找目前目錄隻的檔案,然後再在其子目錄中查找
-fstype 查找位于某一類型檔案系統中的檔案,這些檔案系統類型通常可以在配置檔案/etc/fstab中找到
-mount 在查找檔案時不跨越檔案系統mount點
-follow 如果find指令遇到符号連結檔案,就跟蹤至連結所指向的檔案
-cpio 對比對的檔案使用cpio指令,将這些檔案備份到錄音帶裝置中。
在$HOME目錄下查找txt檔案并列印
find ~ -name "*.txt" -print
在目前目錄下查找txt檔案并列印
find . -name "*.txt" -print
在/apps目錄下查找檔案,但不在/apps/bin目錄下查找
find /apps -name "/apps/bin" -prune -o -print
查找$HOME目錄下使用者dave的檔案
find ~ -user dave -print
查找主賬戶被删除的檔案
find /home -nouser -print
在目前目錄下查找檔案權限為755的檔案
find . -perm 755 -print
查找目前目錄下檔案名以兩個小寫字母開頭,跟着是兩個數字,最後是*.txt的檔案
find . -name "[a-z][a-z][0--9][0--9].txt" -print
在目前目錄下查找檔案長度大于1M位元組的檔案
find . -size +1000000c -print
使用exec或ok來執行shell指令
用ls -l指令列出比對到的檔案,可以把ls -l指令放在find指令的-exec選項中
find . -type f -exec ls -l {} \;
在/logs目錄中查找更改時間在5日以前的檔案并删除它們,可以用:
find logs -type f -mtime +5 -exec rm {} \;
在目前目錄中查找LOG檔案并删除它們,并給出是否删除的提示
find . -name "*.LOG" -mtime +5 -ok rm {} \;
查找目前檔案系統中的所有目錄并陪需
find . -type d -print -local -mount | sort
xargs指令
查找系統中的每一個普通檔案,并用xargs指令來測試它們分别屬于哪類檔案:
find / -type f -print | xargs file
下面的例子在/apps/audit目錄下查找所有使用者具有讀、寫和執行權限的檔案,并回收相應的寫權限
find . -name "core" -print | xargs echo " " >/tmp/core.log
在下面的例子中,我們用grep指令在目前目錄下的所有普通檔案中搜尋DBO這個詞:
find . -name \ * -type f -print | xargs grep "DBO"