(轉)Linux find命令詳解

denniswwh發表於2010-12-29

find的使用格式如下:

$ find

- : 所要搜尋的目錄及其所有子目錄。預設為當前目錄。

- : 所要搜尋的檔案的特徵。幾種常用的條件包括:

[@more@]


+n 大於n,

-n 小於n

n 等於n

-amin n

查詢系統中最後N分鐘訪問的檔案

-atime n

查詢系統中最後n*24小時訪問的檔案

-cmin n

查詢系統中最後N分鐘被改變狀態的檔案

-ctime n

查詢系統中最後n*24小時被改變狀態的檔案

-empty

查詢系統中空白的檔案,或空白的檔案目錄,或目錄中沒有子目錄的資料夾

-group gname

查詢系統中檔案屬於gnam檔案組,並且指定組和ID的檔案

-mmin n

修改時間在n天的以內的.

-name 匹配檔名

-iname 不區分大小寫匹配檔名

-size n[cwbk]

檔案大小小於(-),大於(+)n的檔案。

c-bytes,

b- for 512-byte blocks (this is the default if no suffix is used)

k for Kilobytes (units of 1024 bytes)

- : 對搜尋結果進行特定的處理。

如果什麼引數也不加,find預設搜尋當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有檔案),將它們全都顯示在螢幕上。

使用例項

$ find . -name ‘my*’

搜尋當前目錄(含子目錄,以下同)中,所有檔名以my開頭的檔案。

$ find . -iname ‘my*’

搜尋當前目錄(含子目錄,以下同)中,所有檔名以my,My,mY,MY開頭的檔案。

$ find . -name ‘my*’ -ls

搜尋當前目錄中,所有檔名以my開頭的檔案,並顯示它們的詳細資訊。

find /etc/rc.d -name ‘*crond’ -exec file {} ; 查詢/etc/rc.d目錄下面所有以crond結束的檔案,並使用file指令檢視其屬性,注意:exec和file間是一個空格,file和{}間是一個空格,{}和;之間是一個空格,;是一個整體。

find . -mtime -5 -print

查幾天以內的

find . -mtime +5 -print

查幾天以外的

find -daystart -mtime 5

#從當天算起第5天被修改過的檔案

find / -name ‘*.rmvb’ -exec chmod a-x {} ;

一次性修改rmvb檔案的屬性。

find / -user manager -exec rm {} ;

假如一個使用者已經被刪除,然後再刪除非使用者目錄下的檔案

find / -name core -print -exec rm -rf {} ;

上述命令表示由根目錄開始查詢名為core的檔案或目錄,然後顯示在螢幕上,之後再將所查到的結果全部刪除。最後提醒大家,在使用-exec引數時,必須以“;”結尾,否則,系統會提示“find遺漏-exec引數”,命令將無法執行。

其他技巧

無錯誤查詢

find / -name access_log 2>/dev/null

在Linux系統中Linux Find命令是大多數系統使用者都可以使用的命令,並不是ROOT系統管理員的專利。但是普通使用者使用Linux Find命令時也有可能遇到這樣的問題,那就是Linux系統中系統管理員ROOT可以把某些檔案目錄設定成禁止訪問模式。這樣普通使用者就沒有許可權用 Linux Find命令來查詢這些目錄或者檔案。當普通使用者使用Linux Find命令來查詢這些檔案目錄是,往往會出現"Permissiondenied."(禁止訪問)字樣。系統將無法查詢到你想要的檔案。為了避免這樣的錯誤,我們可是使用轉移錯誤提示的方法嘗試著查詢檔案,輸入

參考資料

Linux的五個查詢命令

Some Useful Unix File Finding Commands

原文:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/124805/viewspace-1043816/,如需轉載,請註明出處,否則將追究法律責任。

相關文章