find命令


find命令用來在指定目錄下查找文件。任何位于參數(shù)之前的字符串都將被視為欲查找的目錄名。如果使用該命令時(shí)淌实,不設(shè)置任何參數(shù)缩搅,則find命令將在當(dāng)前目錄下查找子目錄與文件越败。并且將查找到的子目錄和文件全部進(jìn)行顯示。

語法
find(選項(xiàng))(參數(shù))

-amin<分鐘>:查找在指定時(shí)間曾被存取過的文件或目錄硼瓣,單位以分鐘計(jì)算究飞;
-anewer<參考文件或目錄>:查找其存取時(shí)間較指定文件或目錄的存取時(shí)間更接近現(xiàn)在的文件或目錄;
-atime<24小時(shí)數(shù)>:查找在指定時(shí)間曾被存取過的文件或目錄堂鲤,單位以24小時(shí)計(jì)算亿傅;
-cmin<分鐘>:查找在指定時(shí)間之時(shí)被更改過的文件或目錄;
-cnewer<參考文件或目錄>查找其更改時(shí)間較指定文件或目錄的更改時(shí)間更接近現(xiàn)在的文件或目錄瘟栖;
-ctime<24小時(shí)數(shù)>:查找在指定時(shí)間之時(shí)被更改的文件或目錄葵擎,單位以24小時(shí)計(jì)算;
-daystart:從本日開始計(jì)算時(shí)間半哟;
-depth:從指定目錄下最深層的子目錄開始查找酬滤;
-expty:尋找文件大小為0 Byte的文件签餐,或目錄下沒有任何子目錄或文件的空目錄;
-exec<執(zhí)行指令>:假設(shè)find指令的回傳值為True盯串,就執(zhí)行該指令贱田;
-false:將find指令的回傳值皆設(shè)為False;
-fls<列表文件>:此參數(shù)的效果和指定“-ls”參數(shù)類似嘴脾,但會(huì)把結(jié)果保存為指定的列表文件男摧;
-follow:排除符號(hào)連接;
-fprint<列表文件>:此參數(shù)的效果和指定“-print”參數(shù)類似译打,但會(huì)把結(jié)果保存成指定的列表文件耗拓;
-fprint0<列表文件>:此參數(shù)的效果和指定“-print0”參數(shù)類似,但會(huì)把結(jié)果保存成指定的列表文件奏司;
-fprintf<列表文件><輸出格式>:此參數(shù)的效果和指定“-printf”參數(shù)類似乔询,但會(huì)把結(jié)果保存成指定的列表文件;
-fstype<文件系統(tǒng)類型>:只尋找該文件系統(tǒng)類型下的文件或目錄韵洋;
-gid<群組識(shí)別碼>:查找符合指定之群組識(shí)別碼的文件或目錄竿刁;
-group<群組名稱>:查找符合指定之群組名稱的文件或目錄;
-help或——help:在線幫助搪缨;
-ilname<范本樣式>:此參數(shù)的效果和指定“-lname”參數(shù)類似食拜,但忽略字符大小寫的差別;
-iname<范本樣式>:此參數(shù)的效果和指定“-name”參數(shù)類似副编,但忽略字符大小寫的差別负甸;
-inum<inode編號(hào)>:查找符合指定的inode編號(hào)的文件或目錄;
-ipath<范本樣式>:此參數(shù)的效果和指定“-path”參數(shù)類似痹届,但忽略字符大小寫的差別呻待;
-iregex<范本樣式>:此參數(shù)的效果和指定“-regexe”參數(shù)類似,但忽略字符大小寫的差別队腐;
-links<連接數(shù)目>:查找符合指定的硬連接數(shù)目的文件或目錄蚕捉;
-iname<范本樣式>:指定字符串作為尋找符號(hào)連接的范本樣式;
-ls:假設(shè)find指令的回傳值為Ture柴淘,就將文件或目錄名稱列出到標(biāo)準(zhǔn)輸出迫淹;
-maxdepth<目錄層級(jí)>:設(shè)置最大目錄層級(jí);
-mindepth<目錄層級(jí)>:設(shè)置最小目錄層級(jí)悠就;
-mmin<分鐘>:查找在指定時(shí)間曾被更改過的文件或目錄千绪,單位以分鐘計(jì)算充易;
-mount:此參數(shù)的效果和指定“-xdev”相同梗脾;
-mtime<24小時(shí)數(shù)>:查找在指定時(shí)間曾被更改過的文件或目錄,單位以24小時(shí)計(jì)算盹靴;
-name<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式炸茧;
-newer<參考文件或目錄>:查找其更改時(shí)間較指定文件或目錄的更改時(shí)間更接近現(xiàn)在的文件或目錄瑞妇;
-nogroup:找出不屬于本地主機(jī)群組識(shí)別碼的文件或目錄;
-noleaf:不去考慮目錄至少需擁有兩個(gè)硬連接存在梭冠;
-nouser:找出不屬于本地主機(jī)用戶識(shí)別碼的文件或目錄辕狰;
-ok<執(zhí)行指令>:此參數(shù)的效果和指定“-exec”類似,但在執(zhí)行指令之前會(huì)先詢問用戶控漠,若回答“y”或“Y”蔓倍,則放棄執(zhí)行命令;
-path<范本樣式>:指定字符串作為尋找目錄的范本樣式盐捷;
-perm<權(quán)限數(shù)值>:查找符合指定的權(quán)限數(shù)值的文件或目錄偶翅;
-print:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標(biāo)準(zhǔn)輸出碉渡。格式為每列一個(gè)名稱聚谁,每個(gè)名稱前皆有“./”字符串;
-print0:假設(shè)find指令的回傳值為Ture滞诺,就將文件或目錄名稱列出到標(biāo)準(zhǔn)輸出形导。格式為全部的名稱皆在同一行;
-printf<輸出格式>:假設(shè)find指令的回傳值為Ture,就將文件或目錄名稱列出到標(biāo)準(zhǔn)輸出询微。格式可以自行指定攘轩;
-prune:不尋找字符串作為尋找文件或目錄的范本樣式;
-regex<范本樣式>:指定字符串作為尋找文件或目錄的范本樣式;
-size<文件大小>:查找符合指定的文件大小的文件憔披;
-true:將find指令的回傳值皆設(shè)為True;
-typ<文件類型>:只尋找符合指定的文件類型的文件爸吮;
-uid<用戶識(shí)別碼>:查找符合指定的用戶識(shí)別碼的文件或目錄芬膝;
-used<日數(shù)>:查找文件或目錄被更改之后在指定時(shí)間曾被存取過的文件或目錄,單位以日
計(jì)算形娇;
-user<擁有者名稱>:查找符和指定的擁有者名稱的文件或目錄锰霜;
-version或——version:顯示版本信息;
-xdev:將范圍局限在先行的文件

實(shí)例
根據(jù)文件或者正則表達(dá)式進(jìn)行匹配
列出當(dāng)前目錄及子目錄下所有文件和文件夾

find .

在/home目錄下查找以.txt結(jié)尾的文件名

find /home -name "*.txt"

同上桐早,但忽略大小寫

find /home -iname "*.txt"

當(dāng)前目錄及子目錄下查找所有以.txt和.pdf結(jié)尾的文件

find . \( -name "*.txt" -o -name "*.pdf" \)

find . -name "*.txt" -o -name "*.pdf" 

匹配文件路徑或者文件

find /usr/ -path "*local*"

基于正則表達(dá)式匹配文件路徑

find . -regex ".*\(\.txt\|\.pdf\)$"

同上癣缅,但忽略大小寫

find . -iregex ".*\(\.txt\|\.pdf\)$"

否定參數(shù)
找出/home下不是以.txt結(jié)尾的文件

find /home ! -name "*.txt"

根據(jù)文件類型進(jìn)行搜索

find . -type 類型參數(shù)

類型參數(shù)列表:

  • f 普通文件
  • l 符號(hào)連接
  • d 目錄
  • c 字符設(shè)備
  • b 塊設(shè)備
  • s 套接字
  • p Fifo
    基于目錄深度搜索
    向下最大深度限制為3
find . -maxdepth 3 -type f

搜索出深度距離當(dāng)前目錄至少2個(gè)子目錄的所有文件

find . -mindepth 2 -type f

根據(jù)文件時(shí)間戳進(jìn)行搜索

find . -type f 時(shí)間戳

時(shí)間戳

  • 訪問時(shí)間(-atime/天,-amin/分鐘):用戶最近一次訪問時(shí)間哄酝。
  • 修改時(shí)間(-mtime/天友存,-mmin/分鐘):文件最后一次修改時(shí)間。
  • 變化時(shí)間(-ctime/天陶衅,-cmin/分鐘):文件數(shù)據(jù)元(例如權(quán)限等)最后一次修改時(shí)間屡立。
    搜索最近七天內(nèi)被訪問過的所有文件
find . -type f -atime -7

搜索恰好在七天前被訪問過的所有文件

find . -type f -atime 7

搜索超過七天內(nèi)被訪問過的所有文件

find . -type f -atime +7

搜索訪問時(shí)間超過10分鐘的所有文件

find . -type f -amin +10

找出比file.log修改時(shí)間更長(zhǎng)的所有文件

find . -type f -newer file.log

根據(jù)文件大小進(jìn)行匹配

find . -type f -size 文件大小單元

文件大小單元:

  • b —— 塊(512字節(jié))
  • c —— 字節(jié)
  • w —— 字(2字節(jié))
  • k —— 千字節(jié)
  • M —— 兆字節(jié)
  • G —— 吉字節(jié)
    搜索大于10KB的文件
find . -type f -size +10k

搜索小于10KB的文件

find . -type f -size -10k

搜索等于10KB的文件

find . -type f -size 10k

刪除匹配文件
刪除當(dāng)前目錄下所有.txt文件

find . -type f -name "*.txt" -delete

根據(jù)文件權(quán)限/所有權(quán)進(jìn)行匹配
當(dāng)前目錄下搜索出權(quán)限為777的文件

find . -type f -perm 777

找出當(dāng)前目錄下權(quán)限不是644的php

find . -type f -name "*.php" ! -perm 644

找出當(dāng)前目錄用戶tom擁有的所有文件

find . -type f -user tom

找出當(dāng)前目錄用戶組sunk擁有的所有文件

find . -type f -group sunk

借助-exec選項(xiàng)與其他命令結(jié)合使用
找出當(dāng)前目錄下所有root的文件,并把所有權(quán)更改為用戶tom

find .-type f -user root -exec chown tom {} \;

上例中搀军,{} 用于與-exec選項(xiàng)結(jié)合使用來匹配所有文件膨俐,然后會(huì)被替換為相應(yīng)的文件名勇皇。

找出自己家目錄下所有的.txt文件并刪除

find $HOME/. -name "*.txt" -ok rm {} \;

上例中,-ok和-exec行為一樣焚刺,不過它會(huì)給出提示敛摘,是否執(zhí)行相應(yīng)的操作。

查找當(dāng)前目錄下所有.txt文件并把他們拼接起來寫入到all.txt文件中

find . -type f -name "*.txt" -exec cat {} \;> all.txt

將30天前的.log文件移動(dòng)到old目錄中

find . -type f -mtime +30 -name "*.log" -exec cp {} old \;

找出當(dāng)前目錄下所有.txt文件并以“File:文件名”的形式打印出來

find . -type f -name "*.txt" -exec printf "File: %s\n" {} \;

因?yàn)閱涡忻钪?exec參數(shù)中無法使用多個(gè)命令乳愉,以下方法可以實(shí)現(xiàn)在-exec之后接受多條命令

-exec ./text.sh {} \;

搜索但跳出指定的目錄
查找當(dāng)前目錄或者子目錄下所有.txt文件兄淫,但是跳過子目錄sk

find . -path "./sk" -prune -o -name "*.txt" -print

find其他技巧收集
要列出所有長(zhǎng)度為零的文件

find . -empty
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蔓姚,隨后出現(xiàn)的幾起案子拖叙,更是在濱河造成了極大的恐慌,老刑警劉巖赂乐,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薯鳍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挨措,警方通過查閱死者的電腦和手機(jī)挖滤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浅役,“玉大人斩松,你說我怎么就攤上這事【跫龋” “怎么了惧盹?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)瞪讼。 經(jīng)常有香客問我钧椰,道長(zhǎng),這世上最難降的妖魔是什么符欠? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任嫡霞,我火速辦了婚禮,結(jié)果婚禮上希柿,老公的妹妹穿的比我還像新娘诊沪。我一直安慰自己,他們只是感情好曾撤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布端姚。 她就那樣靜靜地躺著,像睡著了一般挤悉。 火紅的嫁衣襯著肌膚如雪渐裸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天,我揣著相機(jī)與錄音橄仆,去河邊找鬼。 笑死衅斩,一個(gè)胖子當(dāng)著我的面吹牛盆顾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畏梆,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼您宪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了奠涌?” 一聲冷哼從身側(cè)響起宪巨,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溜畅,沒想到半個(gè)月后捏卓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慈格,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年怠晴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浴捆。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蒜田,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出选泻,到底是詐尸還是另有隱情冲粤,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布页眯,位于F島的核電站梯捕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窝撵。R本人自食惡果不足惜科阎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忿族。 院中可真熱鬧锣笨,春花似錦、人聲如沸道批。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隆豹。三九已至椭岩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背判哥。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來泰國打工献雅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人塌计。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓挺身,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親锌仅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子章钾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353