Linux之find命令的參數(shù)

使用name選項(xiàng):
文件名選項(xiàng)是find命令最常用的選項(xiàng),要么單獨(dú)使用該選項(xiàng),要么和其他選項(xiàng)一起使用。 可以使用某種文件名模式來(lái)匹配文件,記住要用引號(hào)將文件名模式引起來(lái)。 不管當(dāng)前路徑是什么,如果想要在自己的根目錄$HOME中查找文件名符合*.log的文件,使用~作為 'pathname'參數(shù),波浪號(hào)~代表了當(dāng)前用戶的家目錄。
查找當(dāng)前登錄用戶家目錄的.log文件:
> find ~ -name "*.log"
查找當(dāng)前目錄下以大寫(xiě)字母開(kāi)頭的文件:
> find . -name "[A-Z]*"
查找/etc目錄下以sys開(kāi)頭的文件:
> find /etc -name "sys*"
詢當(dāng)前目錄下以大寫(xiě)字母開(kāi)頭+3位數(shù)字的.png
的圖片
> find . -name "[A-Z]*[0-9][0-9][0-9].png"
用perm選項(xiàng):
按照文件權(quán)限模式用-perm選項(xiàng),按文件權(quán)限模式來(lái)查找文件的話。最好使用八進(jìn)制的權(quán)限表示法。如在當(dāng)前目錄下查找文件權(quán)限位為755的文件,即文件屬主可以讀、寫(xiě)、執(zhí)行,其他用戶可以讀、執(zhí)行的文件,可以用
> find . -perm 755
find -perm -mode
, 表示mode中轉(zhuǎn)換成二進(jìn)制的1在文件權(quán)限位里面必須匹配,比如mode=644那么轉(zhuǎn)換成二進(jìn)制為110 100 100,而被查找的文件的權(quán)限位也可以被轉(zhuǎn)換成一個(gè)二進(jìn)制數(shù),兩者在位上為1的部分必須完全匹配,而0則不管。例如被查找的文件的權(quán)限為轉(zhuǎn)換成二進(jìn)制數(shù)是111 111 111那么這個(gè)比如被匹配,而假如是100 100 100那么則不會(huì)匹配。所以這個(gè)'-'的作用歸結(jié)起來(lái)就是匹配比mode權(quán)限更充足的文件(找不到什么詞語(yǔ)來(lái)形容了)
忽略某個(gè)目錄:
如果在查找文件時(shí)希望忽略某個(gè)目錄,因?yàn)槟阒滥莻€(gè)目錄中沒(méi)有你所要查找的文件,那么可以使用-prune選項(xiàng)來(lái)指出需要忽略的目錄。在使用-prune選項(xiàng)時(shí)要當(dāng)心,因?yàn)槿绻阃瑫r(shí)使用了-depth選項(xiàng),那么-prune選項(xiàng)就會(huì)被find命令忽略。如果希望在當(dāng)前目錄下查找文件,但不希望在./bin目錄下查找,可以用
> find . -path "./bin" -prune -o -print
避開(kāi)多個(gè)文件夾:
> find . \( -path "./bin" -o -path "./doc" \) -prune -o -print
圓括號(hào)表示表達(dá)式的結(jié)合。\表示引用,即指示shell不對(duì)后面的字符作特殊解釋,而留給 find
命令去解釋其意義。
查找某一確定文件,-name等選項(xiàng)加在-o 之后:
> find . \( -path "./bin" -o -path "./doc" \) -prune -o -name "*.txt" -print
user nouser
和 group nogroup
在當(dāng)前目錄查找所屬主是root
的文件
> find . -user root
查找當(dāng)前目錄所屬主被刪除的文件:
> find . -nouser
在當(dāng)前目錄查找所屬組是root
的文件:
> find . -group root
查找當(dāng)前目錄所屬組被刪除的文件:
> find . -nogroup
按時(shí)間查找文件
查找更改時(shí)間在7日以內(nèi)的文件:
> find . -mtime -7
查找更改時(shí)間在7日以前的文件:
> find . mtime +7
查找比某個(gè)文件新或舊的文件
查找更改時(shí)間比文件a.log新但比文件b.log舊的文件:
> find . -newer a.log ! -newer b.log
查找更改時(shí)間在比a.log文件新的文件:
> find . -newer a.log
type選項(xiàng)
在/etc目錄下查找所有的目錄:
> find /etc -type d
在/etc目錄下查找所有的符號(hào)鏈接文件:
> find /etc -type l
size參數(shù)
可以按照文件長(zhǎng)度來(lái)查找文件,這里所指的文件長(zhǎng)度既可以用塊(block)來(lái)計(jì)量,也可以用字節(jié)來(lái)計(jì)量。以字節(jié)計(jì)量文件長(zhǎng)度的表達(dá)形式為N c;以塊計(jì)量文件長(zhǎng)度只用數(shù)字表示即可。在按照文件長(zhǎng)度查找文件時(shí),一般使用這種以字節(jié)表示的文件長(zhǎng)度,在查看文件系統(tǒng)的大小,因?yàn)檫@時(shí)使用塊來(lái)計(jì)量更容易轉(zhuǎn)換。
在當(dāng)前目錄下查找文件長(zhǎng)度大于100M字節(jié)的文件:
> find . -size +100M
使用depth選項(xiàng):
在使用find命令時(shí),可能希望先匹配所有的文件,再在子目錄中查找。使用depth選項(xiàng)就可以使find命令這樣做。這樣做的一個(gè)原因就是,當(dāng)在使用find命令向磁帶上備份文件系統(tǒng)時(shí),希望首先備份所有的文件,其次再備份子目錄中的文件。
先輸出子內(nèi)容,再輸出上層目錄內(nèi)容,直到最頂層:
> find test -depth ! -empty test/test1/test2/test3 test/test1/test2 test/test1 test
先輸出頂層目錄,再輸出下面的各層子目錄內(nèi)容,直到最低層:
> find test ! -empty test test/test1 test/test1/test2 test/test1/test2/test3
mount選項(xiàng):
在當(dāng)前的文件系統(tǒng)中查找文件(不進(jìn)入其他文件系統(tǒng)),可以使用find命令的mount選項(xiàng)。
從當(dāng)前目錄開(kāi)始查找位于本文件系統(tǒng)中文件名以.txt結(jié)尾的文件:
> find . -mount -name "*.txt" -print
到此這篇關(guān)于 Linux之find命令的參數(shù)的文章就介紹到這了,更多相關(guān) Linux之find命令參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
Linux find命令中-path -prune參數(shù)作用詳細(xì)介紹
find命令擁有多種查找方式,那find命令中加上-path -prune參數(shù)會(huì)怎么樣呢?下面為大家介紹下find命令中-path -prune的用法,感興趣的朋友可以看看2015-01-04Linux find命令中-exec參數(shù)的作用介紹
Linux命令加上不同的參數(shù)其效果也不同,下面小編將針對(duì)Linux fing命令中的-exec 參數(shù)給大家做個(gè)詳細(xì)介紹,感興趣的朋友可以看看2015-01-04linux命令之find命令的12個(gè)常用參數(shù)詳解(含具體用法和注意事項(xiàng))
本文詳細(xì)介紹了linux下find命令的一些常用參數(shù)和使用實(shí)例以及一些具體用法和注意事項(xiàng),需要的朋友可以參考下2014-04-09