find.-name"[A-Z]*&"/> find.-name"[A-Z]*&">

首頁 >系統教程 >Linux >Linux中find指令可用的選項及參數

Linux中find指令可用的選項及參數

WBOY
WBOY轉載
2024-01-03 10:55:191071瀏覽

使用name選項:

#檔案名稱選項是find指令最常用的選項,或是單獨使用該選項,或和其他選項一起使用。可以使用某種文件名模式來匹配文件,記住要用引號將文件名模式引起來。不管目前路徑是什麼,如果想要在自己的根目錄$HOME中查找文件名符合*.log的文件,使用~作為 'pathname'參數,波浪號~代表了當前用戶的家目錄。

尋找目前登入使用者家目錄的.log檔案:

#
> find ~ -name "*.log"

尋找目前目錄下以大寫字母開頭的檔案:

#
> find . -name "[A-Z]*"

尋找/etc目錄下以sys開頭的檔案:

#
> find /etc -name "sys*"

詢目前目錄下以大寫字母開頭 3位數字的.png的圖片

> find . -name "[A-Z]*[0-9][0-9][0-9].png"

用perm選項:

#依照檔案權限模式用-perm選項,按檔案權限模式來找出檔案的話。最好使用八進制的權限表示法。如在目前目錄下尋找文件權限位為755的文件,即文件屬主可以讀取、寫入、執行,其他使用者可以讀取、執行的文件,可以用


> find . -perm 755 

find -perm -mode , 表示mode中轉換成二進位的1在檔案權限位裡面必須匹配,例如mode=644那麼轉換成二進位為110 100 100,而被尋找的檔案的權限位也可以被轉換成一個二進制數,兩者在位上為1的部分必須完全匹配,而0則不管。例如被尋找的檔案的權限為轉換成二進制數是111 111 111那麼這個例如被匹配,而假如是100 100 100那麼則不會匹配。所以這個'-'的作用歸結起來就是匹配比mode權限更充足的文件(找不到什麼詞語來形容了)

忽略某個目錄:

如果在尋找文件時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的文件,那麼可以使用-prune選項來指出需要忽略的目錄。在使用-prune選項時要當心,因為如果你同時使用了-depth選項,那麼-prune選項就會被find指令忽略。如果希望在目前目錄下查找文件,但不希望在./bin目錄下查找,可以用


> find . -path "./bin" -prune -o -print

避開多個資料夾:

> find . \( -path "./bin" -o -path "./doc" \) -prune -o -print

圓括號表示表達式的結合。 \表示引用,即指示shell不對後面的字元作特殊解釋,而留給 find指令去解釋其意義。

找出某一確定文件,-name等選項加在-o 之後:

> find . \( -path "./bin" -o -path "./doc" \) -prune -o-name "*.txt" -print

<span style="background-color: initial;">user nouser</span><span style="background-color: initial;">#group nogroup</span>

在目前目錄中尋找所屬主是root的檔案

> find . -user root 

找出目前目錄所屬主被刪除的檔案:

> find . -nouser

在目前目錄中尋找所屬群組是root的檔案:

#
> find . -group root 

找出目前目錄所屬群組已刪除的檔案:

> find . -nogroup

按時間尋找檔案

#尋找更改時間在7日以內的檔案:

#
> find . -mtime -7

找出更改時間在7日以前的檔案:

> find . mtime +7

找出比某個檔案新或舊的檔案

尋找更改時間比檔案a.log新但比檔案b.log舊的檔案:

#
> find . -newer a.log ! -newer b.log

找出更改時間在比a.log檔案新的檔案:

#
> find . -newer a.log

type選項

在/etc目錄下尋找所有的目錄:

#
> find /etc -type d

在/etc目錄下尋找所有的符號連結檔:

#
> find /etc -type l

size參數

可以依照文件長度來尋找文件,這裡所指的文件長度既可以用區塊(block)來計量,也可以用位元組來計量。以位元組計量檔案長度的表達形式為N c;以區塊計量檔案長度只用數字表示即可。在依照檔案長度尋找檔案時,一般會使用這種以位元組表示的檔案長度,在檢視檔案系統的大小,因為這時使用區塊來計量會更容易轉換。

在目前目錄下尋找檔案長度大於100M位元組的檔案

> find . -size +100M

使用depth選項:

#

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中的文件。

先输出子内容,再输出上层目录内容,直到最顶层:

> find test -depth! -empty

test/test1/test2/test3

test/test1/test2

test/test1

test

先输出顶层目录,再输出下面的各层子目录内容,直到最低层:

> find test ! -empty

test

test/test1

test/test1/test2

test/test1/test2/test3

mount选项:

在当前的文件系统中查找文件(不进入其他文件系统),可以使用find命令的mount选项。

从当前目录开始查找位于本文件系统中文件名以.txt结尾的文件:

> find . -mount -name "*.txt"-print

以上是Linux中find指令可用的選項及參數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除