Linux基礎之文件查找find、locate

(一)使用locate命令

  • 查詢系統上預建的文件索引數據庫

/var/lib/mlocate/mlocate.d

  • 依賴于事先構建 的索引
  • 索引的構建是在系統較為空閑時自動進行( 周期性 任務),管理員手動更新數據庫(updatedb)
  • 索引構建過程需要遍歷整個根文件系統,極消耗資源
  • 工作特點:
  • 查找速度快
  • 模糊查找
  • 非實時查找
  • 搜索的是文件的全路徑,不僅僅是文件名
  • 可能只搜索用戶具備讀取和執行權限的目錄

locate

locate KEYWORD
-i 不區分大小寫的搜索
-n N 只列舉前N 個匹配項目
locate conf
#搜索名稱或路徑中帶有“conf ”的文件
locate -r ‘\.conf$’
#使用Regex 來搜索以“.conf

(二)find命令

  • 定義:
  • 實時查找工具,通過遍歷指定路徑完成文件查找
  • 工作特點:
  • 查找速度略慢
  • 精確查找
  • 實時查找
  • 可能只搜索用戶具備讀取和執行權限的目錄

find [OPTION]... [ 查找路徑] [查找條件] [ 處理動作]
查找路徑:指定具體目標路徑;默認為當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作,默認輸出至屏幕

  • 搜索層級

-maxdepth level 最大搜索目錄深度, 指定目錄為第1級
-mindepth level 最小目錄深度

  • 根據文件名和inode 查找:
  • name " 文件名稱" :支持使用glob *, ?, [], [^]
  • iname " 文件名稱":不區分字母大小寫
  • inum n 按inode 號查找
  • samefile name 相同inode號的文件
  • links n 鏈接數為n 的文件
  • regex "PATTERN" :以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱
  • 根據屬主、屬組查找:
  • -user USERNAME:查找屬主為指定用戶(UID) 的文件
  • -group GRPNAME:查找屬組為指定組(GID) 的文件
  • -uid UserID:查找屬主為指定的UID 號的文件
  • -gid GroupID:查找屬組為指定的GID 號的文件
  • -nouser :查找沒有屬主的文件
  • -nogroup :查找沒有屬組的文件
  • 根據文件類型查找
    根據文件類型查找:
  • -type TYPE:
  • f: 普通文件
  • d: 目錄文件
  • l: 符號鏈接文件
  • s :套接字文件
  • b: 塊設備文件
  • c: 字符設備文件
  • p: 管道文件

上述的條件可以組合起來進行組合查找,但是中間要加上組合條件的KEYWORD

  • 組合條件:
  • 與:-a
  • 或:-o
  • 非:-not, !
  • 德·摩根定律:

(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
示例:
!A -a !B = !(A -o B)
!A -o !B = !(A -a B)
對以上的了解的只是這里做個簡單的例子

找出/tmp目錄下,屬主不是root,且文件名 不以f 開頭的文件
find /tmp ( -not -user root -a -not -name 'f' ) -ls
find /tmp -not ( -user root -o -name 'f
' ) –ls
示例:查找/etc/下,除/etc/sane.d目錄的其它所有.conf后綴的文件
find /etc -path ‘/etc/sane.d’ -a -prune-o -name “.conf”
find /etc (–path ‘/etc/sane.d’ –o –path ’/etc/fonts’ )-a prune –o name “
.conf”
查找條件可以是其他的:

  • 根據文件大小來查找:

  • -size [+|-]#UNIT

  • 常用單位:k, M, G ,c(byte) )

  • UNIT: (#-1, #]

  • 如:6k 表示(5k,6k]

  • -#UNIT :[0,#-1]

  • 如:-6k 表示[0,5k]

  • +#UNIT :(#, ∞ )

  • 如:+6k 表示(6k ,∞ )

  • 根據時間戳:

  • 以“天”為單位;

  • -atime [+|-]#,

  • : [#,#+1)

  • +#: [#+1, ∞ ]

  • -#: [0,#)

  • -mtime

  • -ctime

  • 以“分鐘”為單位:

  • -amin

  • -mmin

  • -cmin

  • 根據權限查找:

  • -perm [/|-]MODE

  • MODE : 精確權限匹配

  • /MODE :任何一類(u,g,o) 對象的權限中只要能一位匹配

  • 即 可,或關系,+從centos7 開始淘汰

  • -MODE :每一類對象都必須同時擁有指定權限,與關系

  • 0 表示不關注

  • find -perm 755會匹配權限模式恰好是755 的文件

  • 只要當任意人有寫權限時,find -perm +222 就會匹配

  • 只有當每個人都有寫權限時,find -perm -222 才會匹配

  • 只有當其它人(other)有寫權限時,find -perm -002才會匹配

  • 處理動作
    -print:默認的處理動作,顯示至屏幕

  • -ls:類似于對查找到的文件執行“ls -l” 命令

  • -delete :刪除查找到的文件

  • -fls file:查找到的所有文件的長格式信息保存至指定文件中

  • -ok COMMAND{};對查找到的每個文件執行由 COMMAND指定的命令,對于每個文件執行命令之前,都會交互式求用戶確認

  • -exec COMMAND {};對查找到的每個文件執行由COMMAND 指定的命令

  • {}:用于引用查找到的文件名稱自身

  • find:傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令

find示例:

find -name “*.conf” -exec cp {} {}.orig \;
# 備份配置文件,添加.orig這個擴展名
find /tmp -ctime +3 -user joe -ok rm {} \;
# 提示刪除存在時間超過3天以上的joe 的臨時文件
find ~ -perm -002 -exec chmod o-w {} \;
# 在你的主目錄中尋找可被其它用戶寫入的文件
find /data –type f -perm 644 -name “*.sh” –exec chmod 755{}\;
find /home –type d -ls
# 需要找/data文件內權限為644的以“.sh”結尾的普通文件然后修改權限為755

參數替換xargs

- xargs用于產生某個命令的參數,xargs入可以讀入stdin的數據,并且以空格符或回車符將將stdin的數據分隔成為arguments
- 注意:文件名或者是其他意義的名詞內含有空格符的情況
- 有些命令不能接受過多參數,命令執行可能會失敗,xargs可以解決

find 和xargs 格式:find | xargs COMMAND

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,762評論 2 372

推薦閱讀更多精彩內容