linux—find用法詳解
linux 中find 常用示例解析
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]
其實[-H] [-L] [-P] [-D debugopts] [-Olevel]這幾個選項並不常用(至少在我的日常工作中,沒 有用到過),上面的find命令的常用形式可以簡化為
find [path…] [expression]
find 命令的引數:
path:find命令查詢檔案的目錄路徑 例如:.表示當前路徑,/表示根路徑
expression:expression 可以分為–“options[-print-exec-ok…]
-options,find命令的常用選項,
-print,find命令將匹配的檔案輸出到標準輸出
-exec, find命令對匹配的檔案執行該引數所給出的shell命令,相應命令形為‘command’{}\
例如:find ./ -size 0 -exec rm {} \; 刪除當前目錄下檔案大小為零的檔案。
-ok,和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在 執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。
find . -name "*.conf" -mtime +5 -ok rm { } \; 在當前目錄中查詢所有檔名 以.LOG結尾、更改時間在5日以上的檔案,並刪除它們,只不過在刪除之前先給出提示
Find命令的常用選項和例項
-name 按檔名字查詢
例如:find /etc -name "filename" 在目錄etc下查詢檔名為filename的檔案
-perm 按照檔案許可權來查詢檔案
例如:find . -perm 755 -print 在當前目錄中查詢檔案許可權為755的檔案
-user 按照檔案屬主來查詢檔案
例如:find ~ -user test -print 在$HOME目錄中查詢屬主為test的檔案
-group 按照檔案屬主來查詢檔案
例如:find /etc -group jere -print 在/etc 目錄中查詢屬於jere使用者組的檔案
-mtiem -n +n 按照檔案的的更改時間來查詢檔案,-n表示檔案更改是啊就距現在n天以內, +n 表示檔案的更改時間距現在n天以前。
例如:find / -mtime -5 -print 在系統根目錄下查詢更改時間再5日內的檔案
find /var/adrm -mtime +3 -print 在/var/adrm 下更改時間大於三天的文 件
-nogroup 查詢無有效所屬組的檔案,即該檔案所屬組在/etc/groups 中不存在
例如:find / -nogroup -print
-nouser 查詢無有效屬主的檔案,即在該檔案的屬主宰/etc/passwd 中不存在
例如:find / -nouser -print
-newer file1 !file2 查詢更改時間比檔案file1新但是比檔案file2舊的檔案
-type 查詢某型別的檔案, 諸如: b-塊裝置檔案 d-目錄 c-字元裝置檔案 p-管道 檔案 l-符號連結檔案 f-普通檔案
例如:find /etc -type d -print 在/etc目錄下的所有的目錄
find . !-type d -pint 在當前目錄下查詢除目錄以為的所有檔案
-size n: 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計
例如:find -size +1000000c -print 在當前目錄下查詢檔案長度大於1M的檔案
find /home/apache -size 100c -pint 在/home/apache/目錄下查詢檔案長度恰好是100位元組的檔案
find . -size +10 -print 在當前目錄中查詢檔案大小為10塊的檔案(一塊512位元組)
-depth 在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢
例如:find / -name ”nginx“ -depth -print 他將首先匹配所有的檔案,然後再進入子目錄查詢
-mount 在查詢檔案時不跨越檔案系統mount點
例如:find 。 -name ”tst“ -mount -print 從當前目錄中開始查詢位於本檔案系統上的tst檔案,不跨越檔案系統
-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。