文件查找(Find和Locate)常用用法及摩根定律趣解(重要)
摩根定律:
非(A 且 B)=(非 A)或(非 B)
非(A 或 B)=(非 A)且(非 B)
這樣看起來不是很好理解下面通過一些列圖片給大家展示;
圖(1) 圖(2)
圖二中的黑色就A且B,A且B的反面三種情況(如圖1)即為(非A)或(非B)。因此非(A且B)和(非A)和(非B)等價。這既是摩根定律
文件查找:
Linux常用的文件查找一共兩種,他們都有各自的優勢; locate, find
非實時查找(數據庫查找):locate
實時查找:find
locate: 依賴于事先構建的索引;索引的構建是在系統較為空閑時自動進行(周期性任務);手動更新數據庫(updatedb);
索引構建過程需要遍歷整個根文件系統,極消耗資源(建議在空閑時候進行操作,務必注意); 工作特點:
1.查找速度快;
2.模糊查找;
3.非實時查找;
4.支持通配符
常用用法:locate KEYWORD
e.g.
locate的精確查找
locate的通配符用法
locate的正則表達式用法
find:實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找;
1.工作特點:
2.查找速度略慢;
3.精確查找;
4.實時查找;
語法: find [OPTION]... [查找路徑] [查找條件] [處理動作] 查找路徑:指定具體目標路徑;默認為當前目錄; 查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件; 處理動作:對符合條件的文件做什么操作;默認輸出至屏幕;
常用選項
–P 這是默認的行為。當遇到鏈接文件時,查找條件匹配的是符號鏈接本身的屬性。 -L 當遇到鏈接文件時,追尋鏈接文件的目標進行查找。查找條件匹配的是目標文件的屬性。 -Olevel 查詢優化。優化level分0-3四個等級。
根據文件名查找:
-name "文件名稱":支持使用glob *, ?, [], [^] -iname "文件名稱":不區分字母大小寫
-regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱;
根據屬主、屬組查找:
-user USERNAME:查找屬主為指定用戶的文件; group GRPNAME: 查找屬組為指定組的文件; -uid UserID:查找屬主為指定的UID號的文件; -gid GroupID:查找屬組為指定的GID號的文件; -nouser:查找沒有屬主的文件; -nogroup:查找沒有屬組的文件;
根據文件類型查找:
-type TYPE:
f: 普通文件 d: 目錄文件 l: 符號鏈接文件 s:套接字文件 b: 塊設備文件 c: 字符設備文件 p: 管道文件
組合條件:
與:-a 或:-o 非:-not, ! !A -a !B = !(A -o B) !A -o !B = !(A -a B)
根據文件大小來查找:
-size [+|-]#UNIT 常用單位:k, M, G #UNIT: (#-1, #] -#UNIT:[0,#-1] +#UNIT:(#,oo)
根據時間戳:
以“天”為單位; -atime [+|-]#, #: [#,#+1) +#: [#+1,oo] -#: [0,#) -mtime -ctime 以“分鐘”為單位: -amin -mmin -cmin
根據權限查找:(需先將摩根定律理解)
-perm [/|-]MODE MODE: 精確權限匹配 /MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可; -MODE:每一類對象都必須同時擁有為其指定的權限標準;
-inum N 按 inode 號查找
-samefile FILENAME 相同 inode 號的文件
-links N 鏈接數為 n 的文件
處理動作: -print:默認的處理動作,顯示至屏幕; -ls:類似于對查找到的文件執行“ls -l”命令; -delete:刪除查找到的文件; -prune :忽略目錄 e.g. fing /etc -path /var/log -a -prune -o -size 10k -a print -fls /path/to/somefile:查找到的所有文件的長格式信息保存至指定文件中; -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令; 對于每個文件執行命令之前,都會交互式要求用戶確認; -exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令; {}: 用于引用查找到的文件名稱自身; 注意:find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令; 有些命令不能接受過多參數,此時命令執行可能會失??;另一種方式可規避此問題: find | xargs COMMAND
原創文章,作者:fighter,如若轉載,請注明出處:http://www.www58058.com/37803
后面的博客需要認真完成哦