每天五分鐘系列 教你學find

2021-09-29 23:48:30 字數 1773 閱讀 5151

linux下的find命令用來在目錄結構中搜尋檔案,並執行指定的操作。linux下find命令提供了相當多的查詢條件,功能很強大。即使系統中含有網路檔案系統( nfs),find命令在該檔案系統中同樣有效。

需要注意的是在執行乙個非常消耗資源的find命令時,我們都傾向於把它放在後台執行,因為遍歷乙個大的檔案系統可能會花費很長的時間(這裡是指30g位元組以上的檔案系統)。

1. 想檢視當前資料夾及子資料夾裡檔名含有「log」字樣的的檔案

# find . -name "*.log"

. :表示當前目錄

-name:表示要根據名稱查詢

2. 想檢視當前資料夾及子資料夾裡有沒有」xinsz」目錄

# find . -type d -name xinsz

3. 想找出當前資料夾及子資料夾裡所有字尾是」.txt」的檔案

# find . -name 「*.txt」

4. 想查詢當前目錄及其子資料夾中「roc」使用者自己的檔案有哪些

# find . -user roc

-user:用於設定所屬使用者的名稱,此處可替換為-group,即所屬使用者組的名稱

5. 想查詢當前資料夾及子資料夾裡許可權設定為777的所有檔案

# find . -perm 777

-perm:用於設定許可權

6. 想查詢當前資料夾及子資料夾裡的同時含有b字元和3字元的檔案:用到正規表示式技術

# find . -regex 『.*b.*3』

-regex:表示使用正規表示式進行匹配。請注意,此命令會和「全路徑」進行匹配,也就是說前面要加.*,因為輸出結果中會有「./」符號。

7. 如果想全部輸出用find命令查詢出的」*.abc」檔案的內容

# find . -type f -name 「*.abc」 -exec cat {} \;

-exec 表示由find找到的匹配項會作為「-exec後面設定的命令」的引數

可以使用-ok代替-exec,這樣對每個匹配項進行操作,都會要求使用者確認(y為是,n為否)

命令最後的{} \; 別忘了寫,其中{}代表用find查詢到的結果中的每乙個查詢項。

8. 查詢當前目錄下在10分鐘內被修改過的檔案

# find . -mmin -10

訪問過用amin,修改過用mmin,檔案狀態改變過用cmin

精確到分鐘的用amin,mmin,cmin,精確到天的用atime,mtime,ctime

在10分鐘之內的用-10,在5分鐘以上的用+10

9. 想查詢當前目錄及子目錄下檔案大小大於10m的所有檔案

# find . -size +10000000c

-size:表示檔案大小,+表示大於某個數,-表示小於某個數。c表示單位是位元組,你可以將c換成k,m,g。

10. 上述所有的find命令都是查詢當前目錄及其子目錄。如果不想深入到子目錄中,而是只查詢當前一層目錄,則可以:

# find .-maxdepth 1-name 「*.c」

11.查詢當前所有目錄並排序

#find . -type d | sort

幾個混合應用:

1.查詢磁碟中大於3m的檔案:

#find . -size +3000k -exec ls -ld {} ;

2.將find出來的東西拷到另乙個地方 

# find *.c -exec cp 『{}』 /tmp 『;』

tree老師 每天五分鐘教你學linux命令03

tree 使用linux的時間越久,越感覺有些工作在linux下完成就是比在windows下完成高效!比如今天要講的這個tree命令!windows和linux都有tree命令,主要功能是建立檔案列表,將所有檔案以樹的形式列出來windows下的tree比較雞肋,只有兩個引數,f 是遞迴顯示每個資料...

每天學五分鐘 Liunx 有趣的 log

說明 看 systemd log 的時候發現了一段有意思的列印,不太明白為什麼會這樣,貼出來與朋友們分享,歡迎知道的朋友們說明下,非常感謝。問題描述 服務啟動時,會執行 python 指令碼,該指令碼去呼叫編譯好的 c 可執行檔案。在這之間都會有 log 輸出,從時間上看是 c 的 log 先列印,...

教你五分鐘學會快速排序

20為選定的關鍵字 轉換為二叉樹表示 即快排是加了關鍵字交換的二叉樹遍歷 想想快排的兄弟歸併排序,二者都是遍歷二叉樹.pub fn quicksort arr mut t where t std cmp partialord fn quick sorted arr mut t a usize,b u...