find:用于在目錄層次結(jié)構(gòu)中搜索文件。
簡介:find [options] [path…] [expression]
expression:[options] [tests] [actions]
tests:測試條件
-name pattern:根據(jù)文件名查找文件。
-iname pattern:與-name類似,不區(qū)分大小寫。
-regex pattern:通過正則表達(dá)式匹配文件的完整路徑名稱。
-user uname:查找屬主為uname的文件,可使用uid。
-group gname:查找屬組為gname的文件,可使用gid。
-nouser:查找沒有屬主的文件。
-nogroup:查找沒有屬組的文件。
-type c:根據(jù)文件的類型進(jìn)行查找。
b:塊設(shè)備
c:字符設(shè)備
d:目錄
p:管道
f:常規(guī)文件
l:符號鏈接
s:套接字
-size [+|-]n:指定查找文件的大小,常用單位:k,M,G。
-atime [+|-]n:以天為單位,指定查找文件的訪問時(shí)間。
-mtime [+|-]n:以天為單位,指定查找文件的修改時(shí)間。
-ctime [+|-]n:以天為單位,指定查找文件的改變時(shí)間。
-amin [+|-]n:以分鐘為單位,指定查找文件的訪問時(shí)間。
-mmin [+|-]n:以分鐘為單位,指定查找文件的修改時(shí)間。
-cmin [+|-]n:以分鐘為單位,指定查找文件的改變時(shí)間。
-perm [/|-]mode:查找指定權(quán)限的文件。
mode:精確權(quán)限匹配。
/mode:任何一類用戶(u,g,o)的權(quán)限中的任何一位(r,w,x)符合條件即滿足,9位權(quán)限之間存在“或”關(guān)系。
-mode:每一類用戶(u,g,o)的權(quán)限中的每一位(r,w,x)同時(shí)符合條件即滿足,9位權(quán)限之間存在“與”關(guān)系。
actions:處理動(dòng)作
-print:將查找到的文件名輸出至標(biāo)準(zhǔn)輸出,為默認(rèn)動(dòng)作。
-ls:在標(biāo)準(zhǔn)輸出上以ls -dils格式列出當(dāng)前文件。
-delete:刪除文件。
-fls file:類似-ls,只是將內(nèi)容輸出到指定文件中。
-exec command {} ;:將查找到的文件做為參數(shù),執(zhí)行command處的命令。
-ok command {} ;:和-exec類似,執(zhí)行命令前提示用戶。
operators:運(yùn)算符
! expr:非運(yùn)算,如果expr為真,則為假。
expr1 -a expr2:與運(yùn)算,expr1和expr2都為真,則為真,默認(rèn)運(yùn)算方式。
expr1 -o expr2:或運(yùn)算,expr1或expr2為真,則為真。
示例
find /tmp -name core -type f -print | xargs /bin/rm -f
查找/tmp目錄下文件名為core的普通文件并刪除。
find . -type f -exec file {} ;
查找當(dāng)前目錄下的所有普通文件并對找到的每個(gè)文件執(zhí)行file命令。
find $HOME -mtime 0
查找用戶家目錄下1天之內(nèi)修改過的文件。
find . -perm 664
查找當(dāng)前目錄下權(quán)限為664的所有文件。
find . -perm -664
查找當(dāng)前目錄下權(quán)限大于等于664的所有文件。
find . -perm /222
查找當(dāng)前目錄下屬主、屬組和其他人中任一用戶有寫入權(quán)限的文件。
find . -perm -444 -perm /222 ! -perm /111
查找當(dāng)前目錄下所有用戶都有讀權(quán)限,屬主、屬組和其他人中任一用戶有寫權(quán)限,所有人都沒有執(zhí)行權(quán)限的文件。