linux find命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。
語法:
find path -option [ -print ] [ -exec | -ok command {} \]
path : find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。
-print:find命令將匹配的檔案輸出到標準輸出。
-exec:find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' ;,注意和;之間的空格。
-ok:和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。
引數說明:
-amin n :在過去n分鐘內被讀取過
-anewer file :比檔案file更晚被讀取過的檔案
-atime n :在過去n天內被讀取過的檔案
-cmin n :在過去n分鐘內被修改過
-cnewer file :比檔案file更新的檔案
-ctime n :在過去n天內被修改過的檔案
注:以上+n表示n以前,-n 表示n以內
-empty :空的檔案-gid n or -groupname : gid是n或是group名稱是name
-ipath p, -path p :路徑名稱符合p的檔案,ipath會忽略大小寫
-name name, -iname name :檔名稱符合name的檔案。iname會忽略大小寫
-size n :檔案大小是n,單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes。
-type c :檔案型別是c的檔案。
d:目錄
-pid n : process id是n的檔案
你可以使用( )將表示式分隔,並使用下列運算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
例項:
將目前目錄及其子目錄下所有延伸檔名是c的檔案列出來。
# find . -name "*.c"
將目前目錄其其下子目錄中所有一般檔案列出
# find . -type f
將目前目錄及其子目錄下所有最近20天內更新過的檔案列出
# find . -ctime -20
查詢/var/log目錄中更改時間在7日以前的普通檔案,並在刪除之前詢問它們:
# find /var/log -type f -mtime +7 -ok rm {}\;
查詢前目錄中檔案屬主具有讀、寫許可權,並且檔案所屬組的使用者和其他使用者具有讀許可權的檔案:
# find . -type f -perm 644 -exec ls -l {}\;
為了查詢系統中所有檔案長度為0的普通檔案,並列出它們的完整路徑:
Linux find命令詳解
在linux上查詢某個檔案確實是一件比較麻煩的事情。畢竟在linux中需要我們使用專用的 查詢 命令來尋找在硬碟上的檔案。linux下的檔案表達格式非常複雜,不象windows,dos下都是統一的aaa.bbb格式那麼方便查詢,在windows中,只要知道要查詢的檔案的檔名或者字尾就非常容易查詢到。...
linux find命令詳解
pathname find命令所查詢 的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄 print find命令將匹配的檔案輸出到標準輸出 exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為 command 注意和 之間的空格。ok 和 exec的作用相同,...
Linux find命令詳解
用法總結如下 find pathname options print exec ok pathname 查詢路徑 option 主要選項如下 name 按照檔名稱查詢 perm 按照檔案許可權查詢 prune 不在當前指定的路徑查詢。如果同時指定了 depth選項,則prune被忽略 user 按照...