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:[c] 查找文件長度為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命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
原創文章,作者:zs5599,如若轉載,請注明出處:http://www.www58058.com/15938