Linux檔案查詢命令find詳述(part1)

roninwei發表於2008-09-29

本文轉自linuxsir其中的“我”代表北南南北!!!Ronin未對本文做任何貢獻及更改僅轉載以方便今後查閱!

總結:zhy2111314

來自:LinuxSir.Org

整理:北南南北

摘要: 本文是find 命令的詳細說明,可貴的是針對引數舉了很多的例項,大量的例證,讓初學者更為容易理解;本文是zhyfly兄貼在論壇中;我對本文進行了再次整理,為方便大家閱讀;

目錄

版權宣告

前言:關於find命令

一、find 命令格式

1find命令的一般形式為;

2find命令的引數;

3find命令選項;

4、使用execok來執行shell命令;

二、find命令的例子;

1、查詢當前使用者主目錄下的所有檔案;

2、為了在當前目錄中檔案屬主具有讀、寫許可權,並且檔案所屬組的使用者和其他使用者具有讀許可權的檔案;

3、為了查詢系統中所有檔案長度為0的普通檔案,並列出它們的完整路徑;

4、查詢/var/logs目錄中更改時間在7日以前的普通檔案,並在刪除之前詢問它們;

5、為了查詢系統中所有屬於root組的檔案;

6find命令將刪除當目錄中訪問時間在7日以來、含有數字字尾的admin.log檔案

7、為了查詢當前檔案系統中的所有目錄並排序;

8、為了查詢系統中所有的rmt磁帶裝置;

三、xargs

四、find 命令的引數;

1、使用name選項

2、用perm選項

3、忽略某個目錄

4、使用find查詢檔案的時候怎麼避開某個檔案目錄

5、使用usernouser選項

6、使用groupnogroup選項

7、按照更改時間或訪問時間等查詢檔案

8、查詢比某個檔案新或舊的檔案

9、使用type選項

10、使用size選項

11、使用depth選項

12、使用mount選項

五、關於本文

六、相關文件

+++++++++++++++++++++++++++++++++++++++++++++++++

正文

+++++++++++++++++++++++++++++++++++++++++++++++++

版權宣告

本文是zhyfly兄貼在LinuxSir.Org 的一個帖子而整理出來的,如果您對版權有疑問,請在本帖後面跟帖。謝謝;本文的HTML版本由北南南北整理;修改了整篇文件的全形及說明文字中的單詞中每個字母空格的問題;為標題加了編號,方便大家閱讀;

前言:關於find命令

由於find具有強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間來了解一下。即使系統中含有網路檔案系統( NFS)find命令在該檔案系統中同樣有效,只你具有相應的許可權。

在執行一個非常消耗資源的find命令時,很多人都傾向於把它放在後臺執行,因為遍歷一個大的檔案系統可能會花費很長的時間(這裡是指30G位元組以上的檔案系統)

一、find 命令格式

1find命令的一般形式為;

find pathname -options [-print -exec -ok ...]

2find命令的引數;

pathname: find命令所查詢的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

-print find命令將匹配的檔案輸出到標準輸出。

-exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為'command' { } ;,注意{ };之間的空格。

-ok -exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓使用者來確定是否執行。

3find命令選項

-name

按照檔名查詢檔案。

-perm

按照檔案許可權來查詢檔案。

-prune

使用這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使用-depth選項,那麼-prune將被find命令忽略。

-user

按照檔案屬主來查詢檔案。

-group

按照檔案所屬的組來查詢檔案。

-mtime -n +n

按照檔案的更改時間來查詢檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime-ctime 選項,但它們都和-m time選項。

-nogroup

查詢無有效所屬組的檔案,即該檔案所屬的組在/etc/groups中不存在。

-nouser

查詢無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。

-newer file1 ! file2

查詢更改時間比檔案file1新但比檔案file2舊的檔案。

-type

查詢某一型別的檔案,諸如:

b - 塊裝置檔案。

d - 目錄。

c - 字元裝置檔案。

p - 管道檔案。

l - 符號連結檔案。

f - 普通檔案。

-size n[c] 查詢檔案長度為n塊的檔案,帶有c時表示檔案長度以位元組計。

-depth:在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢。

-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。

-mount:在查詢檔案時不跨越檔案系統mount點。

-follow:如果find命令遇到符號連結檔案,就跟蹤至連結所指向的檔案。

-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。

另外,下面三個的區別:

-amin n

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

  -atime n

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

  -cmin n

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

  -ctime n

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

 -mmin n

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

  -mtime n

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

[@more@]

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

相關文章