Linux find 詳解


文件查找

  • 在文件系統上查找符合條件的文件;

實現工具:locate, find

詳細內容參見我的另外一篇博客

https://www.cnblogs.com/crazymagic/p/11071875.html

locate 使用(在整個根文件系統檢索,符合條件的文件)

locate:

  • 依賴於事先構建好的索引庫;
  • 系統自動實現(周期性任務)
  • 手動更新數據庫(updatedb

工作特性:

  • 查找速度快;
  • 模糊查找;
  • 非實時查找;

locate [OPTION]... PATTERN...

  • -b:只匹配路徑中的基名;
  • -c:統計出共有多少個符合條件的文件;
  • -r:BRE

注意:索引構建過程需要遍歷整個根文件系統,極消耗資源;

locate  text.4tYe

 

 

 find 詳解

find:

  • 實時查找工具,通過遍歷指定起始路徑下文件系統層級結構完成文件查找

工作特性:

  • 查找速度略慢
  • 精確查找
  • 實時查找

用法:

find [OPTIONS] [查找起始路徑] [查找條件] [處理動作]

查找起始路徑:指定具體搜索目標起始路徑;默認為當前目錄;

查找條件:指定的查找標准,可以根據文件名、大小、類型、從屬關系、權限等等標准進行;默認為找出指定路徑下的所有文件;

處理動作:對符合查找條件的文件做出的操作,例如刪除等操作;默認為輸出至標准輸出;

查找條件:

表達式:選項和測試

測試:結果通常為布爾型("true", "false")

根據文件名查找:

  • -name "pattern"
  • -iname "pattern"
  • 支持glob風格的通配符;
  • *, ?, [], [^]
  • -regex pattern:基於正則表達式模式查找文件,匹配是整個路徑,而非其名;


根據文件從屬關系查找:

  • -user USERNAME:查找屬主指定用戶的所有文件;
  • -group GRPNAME:查找屬組指定組的所有文件;
  • -uid UID:查找屬主指定的UID的所有文件;
  • -gid GID:查找屬組指定的GID的所有文件;
  • -nouser:查找沒有屬主的文件;
  • -nogroup:查找沒有屬組的文件;


根據文件的類型查找:

-type TYPE:

  • f: 普通文件
  • d: 目錄文件
  • l:符號鏈接文件
  • b:塊設備 文件
  • c:字符設備文件
  • p:管道文件
  • s:套接字文件

組合測試:

  • 與:-a, 默認組合邏輯;
  • 或:-o
  • 非:-not, !

練習

1、查找/var目錄下屬主為root,且屬組為mail的所有文件或目錄;

find /var -user root -a -group mail -ls

 

2、查找/usr目錄下不屬於root, bin或hadoop的所有文件或目錄;用兩種方法;

find /usr -not -user root -a -not -user bin -a -not -user hadoop
find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls

 

3、查找/etc目錄下最近一周內其內容修改過,且屬主不是root用戶也不是hadoop用戶的文件或目錄;

find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls
find /etc -mtime -7 -a -not -user root -a -not -user hadoop -ls

 

4、查找當前系統上沒有屬或屬組,且最近一周內曾被訪問過的文件或目錄;

 find / \( -nouser -o -nogroup \) -atime -7 -ls

 

5、查找/etc目錄下大於1M且類型為普通文件的所有文件;

find /etc -size +1M -type f -exec ls -lh {} \;

 

6、查找/etc目錄下所有用戶都沒有寫權限的文件;

 find /etc -not -perm /222 -type f -ls 

 

7、查找/etc目錄至少有一類用戶沒有執行權限的文件;

 find /etc -not -perm -111 -type f -ls


8、查找/etc/init.d/目錄下,所有用戶都有執行權限,且其它用戶有寫權限的所有文件;

 find /etc -perm -113 -type f -ls

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM