Linux基礎(chǔ)之文件查找find偏塞、locate

(一)使用locate命令

  • 查詢系統(tǒng)上預建的文件索引數(shù)據(jù)庫

/var/lib/mlocate/mlocate.d

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

locate

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

(二)find命令

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

find [OPTION]... [ 查找路徑] [查找條件] [ 處理動作]
查找路徑:指定具體目標路徑蜡塌;默認為當前目錄
查找條件:指定的查找標準碉纳,可以文件名、大小馏艾、類型劳曹、權(quán)限等標準進行;默認為找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作琅摩,默認輸出至屏幕

  • 搜索層級

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

  • 根據(jù)文件名和inode 查找:
  • name " 文件名稱" :支持使用glob *, ?, [], [^]
  • iname " 文件名稱":不區(qū)分字母大小寫
  • inum n 按inode 號查找
  • samefile name 相同inode號的文件
  • links n 鏈接數(shù)為n 的文件
  • regex "PATTERN" :以PATTERN匹配整個文件路徑字符串铁孵,而不僅僅是文件名稱
  • 根據(jù)屬主、屬組查找:
  • -user USERNAME:查找屬主為指定用戶(UID) 的文件
  • -group GRPNAME:查找屬組為指定組(GID) 的文件
  • -uid UserID:查找屬主為指定的UID 號的文件
  • -gid GroupID:查找屬組為指定的GID 號的文件
  • -nouser :查找沒有屬主的文件
  • -nogroup :查找沒有屬組的文件
  • 根據(jù)文件類型查找
    根據(jù)文件類型查找:
  • -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”
查找條件可以是其他的:

  • 根據(jù)文件大小來查找:

  • -size [+|-]#UNIT

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

  • UNIT: (#-1, #]

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

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

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

  • +#UNIT :(#, ∞ )

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

  • 根據(jù)時間戳:

  • 以“天”為單位;

  • -atime [+|-]#,

  • : [#,#+1)

  • +#: [#+1, ∞ ]

  • -#: [0,#)

  • -mtime

  • -ctime

  • 以“分鐘”為單位:

  • -amin

  • -mmin

  • -cmin

  • 根據(jù)權(quán)限查找:

  • -perm [/|-]MODE

  • MODE : 精確權(quán)限匹配

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

  • 即 可搭独,或關(guān)系烫止,+從centos7 開始淘汰

  • -MODE :每一類對象都必須同時擁有指定權(quán)限,與關(guān)系

  • 0 表示不關(guān)注

  • find -perm 755會匹配權(quán)限模式恰好是755 的文件

  • 只要當任意人有寫權(quán)限時戳稽,find -perm +222 就會匹配

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

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

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

  • -ls:類似于對查找到的文件執(zhí)行“l(fā)s -l” 命令

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

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

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

  • -exec COMMAND {};對查找到的每個文件執(zhí)行由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文件內(nèi)權(quán)限為644的以“.sh”結(jié)尾的普通文件然后修改權(quán)限為755

參數(shù)替換xargs

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

find 和xargs 格式:find | xargs COMMAND

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末替劈,一起剝皮案震驚了整個濱河市寄雀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陨献,老刑警劉巖盒犹,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異眨业,居然都是意外死亡急膀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門龄捡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卓嫂,“玉大人,你說我怎么就攤上這事聘殖〕况ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵就斤,是天一觀的道長悍募。 經(jīng)常有香客問我,道長洋机,這世上最難降的妖魔是什么坠宴? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮绷旗,結(jié)果婚禮上喜鼓,老公的妹妹穿的比我還像新娘。我一直安慰自己衔肢,他們只是感情好庄岖,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著角骤,像睡著了一般隅忿。 火紅的嫁衣襯著肌膚如雪心剥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天背桐,我揣著相機與錄音优烧,去河邊找鬼。 笑死链峭,一個胖子當著我的面吹牛畦娄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弊仪,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼熙卡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了励饵?” 一聲冷哼從身側(cè)響起驳癌,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曲横,沒想到半個月后喂柒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡禾嫉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年灾杰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熙参。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡艳吠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出孽椰,到底是詐尸還是另有隱情昭娩,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布黍匾,位于F島的核電站栏渺,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锐涯。R本人自食惡果不足惜磕诊,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纹腌。 院中可真熱鬧霎终,春花似錦、人聲如沸升薯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涎劈。三九已至广凸,卻和暖如春阅茶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背炮障。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工目派, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胁赢。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像白筹,于是被迫代替她去往敵國和親智末。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

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

  • (1)文件查找作用:在文件系統(tǒng)上查找符合條件的文件 ?文件查找:locate, find 非實時查找(數(shù)據(jù)庫查找)...
    楠人幫閱讀 463評論 0 0
  • 1.文件查找:locate, find 非實時查找(數(shù)據(jù)庫查找,速度快):locate實時查找:find 2.lo...
    尛尛大尹閱讀 444評論 0 0
  • Linux系統(tǒng)「文件查找」 Linux系統(tǒng)文件中常用屬性為以下內(nèi)容:名稱,大小顽照,權(quán)限由蘑,屬主,屬組代兵,修改時間尼酿,訪問時...
    魏鎮(zhèn)坪閱讀 7,920評論 0 3
  • find命令是用于實現(xiàn)精確查找,實時查找指定目錄下面的文件植影。在工作中常用裳擎。優(yōu)點是:實時,精確思币。缺點是:比較占用系統(tǒng)...
    dxldeng閱讀 717評論 0 1
  • 傍晚獨自一個人跑去看了一場特價電影谷饿,因為特價惶我,因為朋友臨時有事未能赴約,又因為時間剛剛好博投,還因為我有一張和那個影院...
    堅果wowo的防空洞閱讀 689評論 4 11