1.find命令的一般形式:
find pathname -options [-print -exec -ok]
pathname find命令所尋找的目錄路徑
2.使用name選項:
find /etc -name "host*" -print 在/etc目錄中尋找檔案名稱以host開頭的檔案
find . -name "[A-Z]*" -print 在目前的目錄中尋找檔案名稱以一個大寫字母開頭的檔案
3.使用perm選項:
find . -perm 755 -print 在目前的目錄下尋找檔案許可權為755的檔案
4.使用prune選項,忽略某個目錄:
find /apps -name "/apps/bin" -prune -o -print 在/apps目錄下尋找檔案,但不希望在/apps/bin目錄下尋找
5.使用user和nouser選項:
find ~ -user dave -print 在$HOME目錄中尋找檔案屬主為dave的檔案
find /home -nouser -print 在/home目錄下尋找屬主賬戶已經被刪除的檔案
6.使用group和nogroup選項: 使用方法同上
7.按照更改時間尋找:
find / -mtime -5 -print 在根目錄下尋找更改時間在5日以內的檔案
find /var/adm -mtime +3 -print 在/var/adm目錄下尋找更改時間在3日以前的檔案
8.尋找比某個檔案新或舊的檔案:
find . -newer age.awk ! -newer belts.awk -exec ls -l {} \; 尋找更改時間比檔案age.awk新但比檔案belts.awk舊的檔案
假設現在的時間是23:40,希望尋找更改時間在兩個小時以內的檔案
首先可以建立這麼個檔案:touch -t 05042140 dstamp
然後在目前的目錄下尋找更改時間在兩個小時以內的檔案:find . -newer dstamp -print
9.使用type選項:
find . ! -type d -print 在目前的目錄下尋找除目錄意外的所有類型的檔案
find /etc -type l -print 在/etc目錄下尋找所有的符號連結檔案
10.使用size選項:
find . -size +1000000c -print 在目前的目錄下尋找檔案長度大於1M位元組的檔案
find /home/apache -size 100c -print 在/home/apache目錄下擦汗找檔案長度恰好為100位元組的檔案
11.使用depth選項:
find / -name "COM.FILE" -depth -print 從檔案系統的根目錄開始,尋找一個名為CON.FILE的檔案,它將首先匹配所有的檔案然後再進入子目錄中尋找
12.使用exec或ok來執行shell命令:
exec選項後面跟隨著所要執行的命令,然後是一對兒{},一個空格和一個\,最後是一個分號。
find . -type f -exec ls -l {} \; 匹配目前的目錄下的所有普通檔案,並在-exec選項中使用ls -l命令將它們列出
find logs -type f -mtime +5 -exec rm {} \; 在/logs目錄中尋找更改時間在5日以前的檔案並刪除它們
-ok是-exec的安全模式
find . -name "*.LOG" -mtime +5 -ok rm {} \; 在目前的目錄中尋找所有檔案名稱以.LOG結尾,更改時間在5日以上的檔案,並刪除他們,不過在刪除之前會給出提示。按y鍵刪除,按n鍵不刪除