Linux之Find命令詳解

Linux系統(tǒng)「文件查找」

Linux系統(tǒng)文件中常用屬性為以下內(nèi)容:名稱,大小舰蟆,權(quán)限趣惠,屬主,屬組身害,修改時間味悄,訪問時間等,在龐大的系統(tǒng)中塌鸯,需要在prompt中查詢文件侍瑟,需要借助其查找工具實現(xiàn),以此可以查詢相同或要求指定屬性的文件丙猬,Centos及EHLE類系統(tǒng)實現(xiàn)查詢工具有:Locate涨颜、find工具。

locate工具

`locate` 
    synopsis: locate [option]…PATTERN….
    options:
        -b --basename: 只匹配路徑的基名
        -c --count: 統(tǒng)計匹配條件的數(shù)量
        -r --regexp:支持正則表達式方式查詢

locate工作特性:

優(yōu)點####

  1. 查詢速度快茧球,基于索引表查詢,索引表時系統(tǒng)計劃或手動使用updatedb命令建立
  2. 不占用系統(tǒng)資源

缺點####

  1. 非實時查詢
  2. 模糊查詢
  3. 查詢的名稱匹配路徑名稱
  4. 索引表建立非常耗用系統(tǒng)資源

find工具

一咐低、工作特點

優(yōu)點###

  1. 實時查找
  2. 準確查找,遍歷整個目錄下的所有文件
  3. 可以對查詢到的文件進行指定動作袜腥,即查看,刪除钉汗,移動等操作.

缺點####

  1. 查詢速度略慢

find命令使用方法

`find` - search for files in a directory hierarhy
    sysnopsis: find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

查詢條件

查詢條件由選項及測試條件組成:
【 測試條件 】
一羹令、以文件名查找
  1. -name pattern : 以文件名查找
  2. -iname pattern: 不區(qū)分文件名的大小寫,只支持glob風格的查找方式:*,损痰?,[],[^]
  3. -regex pattern: 基于正則表達式查找文件福侈,精確匹配文件名
二、以文件從屬關(guān)系查找
  1. -user USERNAME : 以用戶名查找
  2. -group GROUPNAME : 以組名查找
  3. -uid UID :以UID號查找
  4. -gid GID :以GID查找
  5. -nouser : 查找沒有屬主的文件
  6. -nogroup : 查找沒有屬組的文件
三卢未、以文件類型查找
  1. -type TYPE : 以文件類型查找
    1. f : 普通文件
    2. d : 目錄文件
    3. b : 塊設(shè)備文件
    4. c : 字符設(shè)備文件
    5. l : 連接文件
    6. s : 套接字文件
    7. p : 管道文件
四肪凛、根據(jù)文件大小查找
  1. -size [+|-]SIZE : 以文件大小查詢,大小包含K,M辽社,G的單位
    1. -size 5M : 精確查找大小為5M的文件伟墙,大小上面浮動稍微有偏差
    2. -size -5M : 查詢大小小于5M的文件
    3. -size +5M : 查詢大小大于5M的文件
五、根據(jù)時間查找
  1. -atime [+|-]TIME : 以訪問時間(天)查找

  2. -mtime [+|-]TIME : 以數(shù)據(jù)修改時間(天)查找

  3. -ctime [+|-]TIME : 以元數(shù)據(jù)修改時間(天)查找

  4. -amin [+|-]TIME : 以訪問時間(分鐘)查找

  5. -mmin [+|-]TIME : 以數(shù)據(jù)修改時間(分鐘)查找

  6. -cmin [+|-]TIME : 以元數(shù)據(jù)修改時間(分鐘)查找

  7. -newer FILE : 以FILE文件為條件滴铅,判斷比它新的文件

    • 7 : 準確時間戳葵,7表示剛好7(天|分鐘)起始位置
    • +7: 7(天|分鐘)以前的
    • -7: 7(天|分鐘)以內(nèi)的
六、根據(jù)權(quán)限查找
  1. -perm MODE : 精確權(quán)限查找
    • find . -perm 644
  2. -perm /MODE : 任何一類用戶(u,g,o)中的任何一位(r,w,x)符合條件即滿足汉匙,理解為或關(guān)系
    • find . -perm /222 : 查找至少有一個類用戶有寫權(quán)限
    • find . -perm /666 : 查找至少有一個類用戶有讀寫權(quán)限
    • find . -perm /001 :查找其他用戶有執(zhí)行權(quán)限
  3. -perm -MODE : 每一類用戶(u,g,o)的權(quán)限中的每一位(r,w,x)同時符合條件即滿足拱烁,理解為與關(guān)系
    • find . -perm -222 : 查找三類用戶都有寫權(quán)限
    • find . -not -perm -222 :至少有一類用戶沒有寫權(quán)限
七生蚁、 組合條件測試
  1. : -a
    • 默認組合邏輯,可以加-a戏自,也可以取消邦投,例:find . -type f -a -user mariadb,兩個條件同時滿足
  2. : -o
    • 可以加-o參數(shù)擅笔,例:find . -type f -o -nouser ,兩個條件只滿足一個即可
  3. : -not 或者 !表示
    • find . -not -type f,不是普通文件
    • find . ! -type f ,同上
八志衣、處理動作
  1. -print : 默認為打印,不需要添加剂娄,輸出入屏幕
  2. -ls : 以ls長文件的格式形式輸出
  3. -delete : 刪除查找到的文件
  4. -fls /PATH/TO/SOMEFILE :把查詢到的文件以ls詳細信息格式保存到SOMEFILE文件中
  5. -ok COMMAND {} \; : 查找到的文件傳遞給COMMAND命令蠢涝,提每步都給用戶提示確認操作
  6. -exec COMMAND {} \; : 查找到的文件傳遞給COMMAND命令,直接修改完成阅懦,不給用戶確認
注意:find將查找到的文件路徑一次性傳遞給后面的命令和二,但有很多的命令不能接受過長的參數(shù),導(dǎo)致命令的執(zhí)行失敗耳胎,使用如下方式可避免此錯誤的發(fā)生:

find /etc -type f | xargs -i COMMAND : -i參數(shù)是由find的結(jié)果傳給xargs命令后惯吕,由-i指定結(jié)果代替符

    find /etc -type f | xargs -i cp {} /tmp : -i 指定代替符為{}

選項

一、指定查找目錄范圍
  1. -maxdepth NUM : 指定最多搜索目錄層級到NUM層
  2. -mindepth NUM : 指定最少搜索目錄NUM層級
二怕午、查找空文件
  1. -empty : 查詢內(nèi)容為空的文件
    • find ./ -empty : 查找當前目錄下的所有空文件
三废登、排除符號連接
  1. -follow : 排除符號連接

Find與xagrs的命令結(jié)合

Usage:

find /etc -type f | xargs -i cp {} /tmp/

    -i : 由xargs接收的參數(shù),由-i聲名由后一個命令{}代替

==============

示例
  1. 找出/tmp目錄下屬主為非root,且文件名包含fstab字符串的文件
    • find /tmp -not -user root -a -name *fstab*
  2. 找出/tmp目錄下文件名中不包含fstab字符串的文件
    • find /tmp -not -name *fstab*
  3. 找出/tmp目錄下屬主為非root,而且文件名不包含fstab字符串的文件
    • find /tmp -not -user root -a -not -name *fstab*
    • find /tmp -not \(-user root -o -name *fstab*\)
  4. 至少有一周沒有訪問過的文件
    • find /etc -atime +7 -ls
  5. 24小時內(nèi)修改過的文件
    • find /etc -mtime -1 -ls
  6. 查找 /var目錄下屬主為root郁惜,且屬組為mail的所有文件或目錄
    • find /var/ -user root -group mail
  7. 查找/usr目錄下不屬于root,bin,或者hadoop的所有文件或目錄堡距,用兩種方法
    • find ./ -not -user bin -not -user user3 -not -user user4
    • find ./ -not \( -user bin -o -user user3 -o -user user4 \)
  8. 查找/etc目錄下最近一周其內(nèi)容修改過, 且屬主不是root用戶也不是hadoop用戶的文件或目錄
    • find /etc -mtime -7 -not -user root -not -user hadoop
  9. 查找當前系統(tǒng)上沒有屬主或?qū)俳M兆蕉,且最近一周內(nèi)曾被訪問過的文件或目錄
    • find / -atime -7 -nouser -o -nogroup
  10. 查找/etc目錄下大于1M且類型為普通文件的所有文件
    • find /etc/ -size +1M -type f -ls
  11. 查找/etc目錄下所有用戶都沒有寫權(quán)限的文件
    • find /etc/ -type f -not -perm /222 -ls
  12. 查找/etc目錄至少有一類用戶沒有執(zhí)行權(quán)限的文件
    • find /etc/ -not -perm -111 -ls
  13. 查找/etc/init.d目錄下羽戒,所有用戶都有執(zhí)行權(quán)限,且其它用戶有寫權(quán)限的所有文件
    • find /etc/ -perm -111 -perm -002
    • find /etc/ -perm -113

摩根定律:

** !A -a !B = !(A -o B)**

** !A -o !B = !(A -a B)**

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末虎韵,一起剝皮案震驚了整個濱河市易稠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌包蓝,老刑警劉巖驶社,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異测萎,居然都是意外死亡亡电,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門绳泉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逊抡,“玉大人,你說我怎么就攤上這事∶暗眨” “怎么了拇勃?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長孝凌。 經(jīng)常有香客問我方咆,道長,這世上最難降的妖魔是什么蟀架? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任瓣赂,我火速辦了婚禮,結(jié)果婚禮上片拍,老公的妹妹穿的比我還像新娘煌集。我一直安慰自己,他們只是感情好捌省,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布苫纤。 她就那樣靜靜地躺著,像睡著了一般纲缓。 火紅的嫁衣襯著肌膚如雪卷拘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天祝高,我揣著相機與錄音栗弟,去河邊找鬼。 笑死工闺,一個胖子當著我的面吹牛乍赫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陆蟆,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼耿焊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遍搞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤器腋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體低散,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡桨昙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了措左。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片依痊。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胸嘁,到底是詐尸還是另有隱情瓶摆,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布性宏,位于F島的核電站群井,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏毫胜。R本人自食惡果不足惜书斜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望酵使。 院中可真熱鬧荐吉,春花似錦、人聲如沸口渔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搓劫。三九已至瞧哟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枪向,已是汗流浹背勤揩。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秘蛔,地道東北人陨亡。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像深员,于是被迫代替她去往敵國和親负蠕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • find命令是用于實現(xiàn)精確查找倦畅,實時查找指定目錄下面的文件遮糖。在工作中常用。優(yōu)點是:實時叠赐,精確欲账。缺點是:比較占用系統(tǒng)...
    dxldeng閱讀 717評論 0 1
  • Ubuntu的發(fā)音 Ubuntu罢洲,源于非洲祖魯人和科薩人的語言踢故,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,274評論 9 467
  • (1)文件查找作用:在文件系統(tǒng)上查找符合條件的文件 ?文件查找:locate, find 非實時查找(數(shù)據(jù)庫查找)...
    楠人幫閱讀 467評論 0 0
  • 作為一枚手殘黨,能這樣已經(jīng)實屬不易了殿较。
    又欠檸枝閱讀 241評論 2 3
  • 我們常說的投資耸峭,就是指貨幣轉(zhuǎn)化為資本的過程。也就是把現(xiàn)有的資金投入到某種商品斜脂,期待在未來取得更大的回報或收益抓艳。那么...
    天寶慧眼tbvv558閱讀 211評論 0 1