find命令拾遺

1. -maxdepth的用法

-maxdepth-mindepth可以限制搜索的深度释簿。當搜索文件超過某個級別或者搜索過多的目錄,會導致查找速度變慢应媚,查找花費的時間過多扣讼,這時候就可以用-maxdepth來解決:

find /home -maxdepth 1 -name "*.csv" -mtime -5 | wc -l

本例表示只在/home目錄下查找最后修改時間在5天以內的csv文件,并統(tǒng)計文件的數目垃帅。如果修改為-maxdepth 2就表示在/home目錄及其一級子目錄下查找延届,不會搜索到/home/sub/sub1目錄下。-mindepth的意義同-maxdepth相反贸诚,此處不贅述方庭。

2. -depth的用法和find結果的排列順序

在你想要批量備份文件的時候,總希望先備份所有的文件酱固,再備份子目錄下的文件械念,這里需要考慮如何find出想要備份文件的順序。
-depth可以在處理目錄以前首先處理目錄下的子內容运悲。以下查詢顯示了使用-depth的效果:
第一個例子:不使用depth龄减,使用通配符*搜索當前目錄下的file和directory

find *            
#輸出結果:
chmod
result.txt
sasuser.v94
sasuser.v94/regstry.sas7bitm
sasuser.v94/parms.sas7bcat
zhnlicron

第二個例子:使用depth,使用通配符*搜索當前目錄下的file和directory

find * -depth
#輸出結果
chmod
result.txt
sasuser.v94/regstry.sas7bitm
sasuser.v94/parms.sas7bcat
sasuser.v94
zhnlicron

可以看到/sasuser和它的子目錄中的文件位置做了調換班眯。find * -depth會先輸出/sasuser目錄下的文件希停。

那么問題來了,在不考慮depth的情況下鳖敷,find是按照什么順序來輸出結果呢脖苏?如上第一個例子使用了*通配符,所以默認會先按照字典序來匹配定踱,在進行find操作棍潘。

比如*會先匹配到當前目錄下的./chmod,然后再find ./chmod崖媚,所以find出來的結果是按照字典序的亦歉。

我們再做一個find操作,不使用通配符*直接進行find當前目錄:

find .          
#輸出結果
chmod
zhnlicron
result.txt
sasuser.v94
sasuser.v94/regstry.sas7bitm
sasuser.v94/parms.sas7bcat

位置再次發(fā)生了變化畅哑,至少表面上看不可能是按照字典序了肴楷,那么是依照什么規(guī)則呢?這種則涉及到linux中文件名在超級塊中的存儲方式(spuer_block):為了快速找到一個文件荠呐,我們通常會使用hash算法赛蔫,和B樹算法(二叉樹算法)在超級塊存儲文件名(與inode對應)砂客,find操作就是根據B樹遍歷查找的。

在不同的機器中呵恢,文件掛到B樹上的方式不同鞠值,可能遍歷查找的結果就會不同。比如以左遍歷掛文件名渗钉,右遍歷來查找文件名彤恶。參考資料

3. 使用多個{}的例子

繼續(xù)上面提出的備份問題,我們已經按照順序把需要的文件find出來了鳄橘,需要批量備份成*.bak文件声离。可以利用{}這樣寫:

find -name "*.txt" -exec cp {} {}.bak \;
    #注意括號之間的空格瘫怜。
    #批量將當前目錄下后綴為txt的文件備份一份txt.bak文件

4. -perm的用法

上一篇將find操作用于定時crontab任務术徊,來執(zhí)行change group的操作。其實可以用-perm來更準確的定位到需要修改權限的文件鲸湃。-perm的用法有以下幾種簡單的形式:

  • find -perm mode
  • find -perm -mode
  • find -perm +mode

mode表示嚴格匹配弧关,-mode表示find權限大于等于mode的文件,+mode表示find權限小于等于mode的文件(可能跟正常的認識剛好相反)唤锉。

find . -perm -g=r -type f -exec ll {} \;
    #找到具有組讀權限的文件世囊,用ll命令顯示文件詳細信息。
find . -perm -744;
    #找到權限大于等于744的文件窿祥。

【權限的數字表示】使用ll命令可以查看文件的權限:

ll /home/tyrone
#顯示結果
-rw-rw-r-- 1 tyrone tyrone   199 Jun  9 20:02 autoexec.sas
-rw-rw-r-- 1 tyrone tyrone     0 Jun  4 01:42 chmod
-rw------- 1 tyrone tyrone     0 Jun  9 19:36 nohup.out
-rw-rw-r-- 1 tyrone tyrone 70429 Jun 10 22:10 resultOfNas.txt
drwxrwxr-x 2 tyrone tyrone  4096 Jun  9 23:11 sasuser.v94
-rw-rw-r-- 1 tyrone tyrone     0 Jun  5 02:13 tyronecron

最左邊是一串字母和-的集合株憾,從第二列開始每三個一組,分別表示文件所屬用戶晒衩、所屬組嗤瞎、組外用戶的權限。r代表讀听系,w代表寫贝奇,x代表執(zhí)行。例如-rw-rw-r--就表示文件所屬用戶和所屬組對該文件有讀寫權限靠胜,組外只有讀的權限掉瞳。

那么怎么對應于數字呢?其中浪漠,r=4陕习,w=2,x=1址愿,然后每三個字母一組把數字加起來的和組成一個三位數字该镣。例如-rw-rw-r--就等于-420420400,化為三位數字664即為權限所對應的值响谓。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末损合,一起剝皮案震驚了整個濱河市省艳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嫁审,老刑警劉巖拍埠,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異土居,居然都是意外死亡,警方通過查閱死者的電腦和手機嬉探,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門擦耀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涩堤,你說我怎么就攤上這事眷蜓。” “怎么了胎围?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵吁系,是天一觀的道長。 經常有香客問我白魂,道長汽纤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任福荸,我火速辦了婚禮蕴坪,結果婚禮上,老公的妹妹穿的比我還像新娘敬锐。我一直安慰自己背传,他們只是感情好,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布台夺。 她就那樣靜靜地躺著径玖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颤介。 梳的紋絲不亂的頭發(fā)上梳星,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機與錄音滚朵,去河邊找鬼丰泊。 笑死,一個胖子當著我的面吹牛始绍,可吹牛的內容都是我干的瞳购。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亏推,長吁一口氣:“原來是場噩夢啊……” “哼学赛!你這毒婦竟也來了年堆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤盏浇,失蹤者是張志新(化名)和其女友劉穎变丧,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體绢掰,經...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡痒蓬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了滴劲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攻晒。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖班挖,靈堂內的尸體忽然破棺而出鲁捏,到底是詐尸還是另有隱情,我是刑警寧澤萧芙,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布给梅,位于F島的核電站,受9級特大地震影響双揪,放射性物質發(fā)生泄漏动羽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一渔期、第九天 我趴在偏房一處隱蔽的房頂上張望曹质。 院中可真熱鬧,春花似錦擎场、人聲如沸羽德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宅静。三九已至,卻和暖如春站欺,著一層夾襖步出監(jiān)牢的瞬間姨夹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工矾策, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留磷账,地道東北人。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓贾虽,卻偏偏與公主長得像逃糟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內容

  • find Linux find 命令是所有 Linux 命令中最有用的一個绰咽,同時也是最混亂的一個菇肃。它很難,因為它的...
    seadragonnj閱讀 386評論 0 0
  • find一些常用參數的一些常用實例和一些具體用法和注意事項取募。 1.使用name選項: 文件名選項是find命令最常...
    架構飛毛腿閱讀 338評論 0 0
  • find命令是用于實現(xiàn)精確查找琐谤,實時查找指定目錄下面的文件。在工作中常用玩敏。優(yōu)點是:實時斗忌,精確。缺點是:比較占用系統(tǒng)...
    dxldeng閱讀 717評論 0 1
  • 在一個沒有法律規(guī)約旺聚、道德限制的地方织阳,人類的本性暴露無疑。Live Without Limits翻屈,真實的自己可以毫無...
    _CelesteHuang_閱讀 453評論 0 0
  • 前言 嘛,這個東西在上次寫msys2就想加的妻坝,無奈被CMake坑出??伸眶,這幾天因為折騰ffmpeg玩又要用所以研究了...
    Chigusa閱讀 6,526評論 0 2