Linux之find命令的參數
使用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
user nouser
和 group nogroup
在當前目錄查找所屬主是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命令的參數的文章就介紹到這了,更多相關 Linux之find命令參數內容請搜索以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持!
相關文章:
1. SWsoft公司推出Windows版Linux服務器軟件2. 在Ubuntu/Linux環境下使用MySQL開放/修改3306端口和開放訪問權限3. 紅帽RH133課程概要――Red Hat Linux 系統管理4. linux 查看文件系統類型實例方法5. Linux下mysql異地自動備份的方法6. Linux/Ubuntu Git從安裝到使用的方法步驟7. VMware中使用Windows2003和Linux混合運行RIP路由協議(一)8. SCO+LINUX+WIN2K多系統引導安裝9. Mac虛擬機安裝Linux Ubuntu教程10. Linux云服務器搭建SFTP服務器圖片服務器的操作
