基本格式:
find 【路徑】 【-選項】 【-操作】
一、路徑
1. ./ 當前目錄
2. ~ 用戶家目錄
3 ./home 當前目錄下的家目錄
4. /home /home目錄
5. /home/wang/ /home目錄下的wang目錄
二、選項
1.name選項:
使用文件名('filename')來匹配:可以和其他選項一起使用
# find ./ -name "[A-Z]*" -print
查找當前目錄及子目錄中文件名以一個大寫字母開頭的文件
# find /etc -name "host*" -print
查找/etc目錄中以host開頭的文件
2.perm選項:
使用文件權限來查找文件
# find ./ -perm 755 -print
當前目錄下查找文件權限位爲755的文件
# find ./ -perm -005
都匹配,如-007就相當於777,-005相當於555
3.prune選項:
查找文件時忽略某個目錄。不能與-depth選項同用
# find /home -path '/home/wang' -prune -o -print
查找/home目錄中不在wang子目錄之內的所有文件
# find test \( -path test/test4 -o -path test/test3 \) -prune -o -print
避開多個文件夾。圓括號表示表達式的結合
# find test \(-path test/test4 -o -path test/test3 \) -prune -o -name "*.log" -print
查找某一確定文件,-name等選項加在-o 之後
4.user和nouser選項:
按文件屬主查找文件
# find /etc -user wang -print
在/etc目錄下查找文件屬主爲wang的文件
# find /home -nouser -print
查找/home目錄中在/etc/passwd文件中沒有有效帳戶的文件
5.group和nogroup選項:
按文件所屬組查找
# find /etc -group root -print
在/etc目錄下查找屬於root用戶組的文件
# find / -nogroup-print
在根目錄查找沒有有效所屬用戶組的所有文件
6.mtime或atime選項:
按照更改時間來查找文件
# find / -mtime -5 -print
在系統根目錄下查找更改時間在5天內的文件
# find /var/log -mtime +3 -print
在/var/log目錄下查找更改時間在3天前的文件
7.newer選項:
查找比某個文件新或舊的文件
一般形式爲:
newest_file_name ! oldest_file_name
其中,!是邏輯非符號
# find ./ -newer log2012.log -print
查找更改時間在比log2012.log文件新的文件
# find -newer log2015.log ! -newer log2016.log
查找更改時間比文件log2015.log新但比文件log2016.log舊的文件
8.type選項:
按照類型查找
# find /etc -type d -print
在/etc目錄下查找所有的目錄
# find ./ ! -type d -print
在當前目錄下查找除目錄以外的所有類型的文件
# find /etc -type l -print
在/etc目錄下查找所有的符號鏈接文件
9.size選項:
按照文件長度來查找文件
文件長度既可以用塊(block)來計量(只用數字表示即可),也可以用字節來計量(Nc)
# find ./ -size +1000000c -print
查找當前目錄x下文件長度大於1 M字節的文件
# find /var/log -size 100c -print
查找/var/log下文件長度恰好爲100字節的文件
# find ./ -size +10 -print
查找當前目錄下長度超過10塊的文件(一塊等於512字節)
10.depth選項:
先匹配所有的文件,再在子目錄中查找
# find / -name "666" -depth -print
從根目錄開始先匹配所有的文件然後再進入子目錄中查找一個名爲666的文件
11.mount選項:
在當前的文件系統中查找(不進入其他文件系統)
# find ./ -name "*.TXT" -mount -print
查找目錄中位於本文件系統中文件名以TXT結尾的文件
三、參數
1.-print 輸出到標準輸出,常省略
# find /etc -name "host*" -print
查找/etc目錄中以host開頭的文件,並打印
2.-exec 對匹配到的文件執行shell。語法 -exec 'command'{} \;
# find /var/log/ -type f -name 'mysql*.log' -exec rm -rf {} \;
查找/var/log目錄下類型爲普通文件的mysql日誌,並且刪除
3.-ok 與-exec作用相同,只不過是交互式操作
# find /var/log -mtime -3 -ok rm -rf {} \;
查找/var/log下的3天內的文件,以交互的方式刪除