find . \( -name "*.txt" -o -name "*.pdf" \) -print
演示結果:
find . -regex ".*(.txt|.pdf)$"
-iregex: 忽略大小寫的正則
查詢所有非txt文字
find . ! -name "*.txt" -print
演示結果:
列印出當前目錄的檔案(深度為1)
find . -maxdepth 1 -type f
演示結果:
5.1 按型別搜尋
-type b/d/c/p/l/f #查是塊裝置[b]、目錄[d]、字元裝置[c]、管道[p]、符號鏈結[l]、普通檔案[f]
//只列出所有目錄
find . -type d -print
演示結果:
5.2 按時間搜尋
-atime 訪問時間 (單位是天,分鐘單位則是-amin,以下類似)
-mtime 修改時間 (內容被修改)
-ctime 變化時間 (元資料或許可權變化)
時間引數:
引數引數釋義
+nn 天以外修改的檔案
n正好 n天 修改的檔案
-nn 天以內修改的檔案
舉例1: 查詢 /etc 目錄下,5天以內修改 且以 conf 結尾的檔案。 find /etc -mtime -5 -name '*.conf'
舉例2: 查詢 /etc 目錄下,10天之前修改,且屬於 yangyang 的檔案。 find /etc -mtime +10 -user yangyang
演示7天以內被訪問過的所有檔案:
find . -atime -7 -type f -print
演示結果:
5.3 按大小搜尋
w字 k m g
尋找大於2k的檔案
find . -type f -size +2k
5.4 按許可權查詢
//找具有可執行許可權的所有檔案
find . -type f -perm 644 -print
5.5 按使用者查詢
// 找使用者weber所擁有的檔案
find . -type f -user weber -print
5.6 找到後的後續動作
5.6.1 刪除
刪除當前目錄下所有的swp檔案:
find . -type f -name "*.swp" -delete
5.6.2 執行動作(強大的exec)
//將當前目錄下的所有權變更為weber
find . -type f -user root -exec chown weber {} ;
注:{}是乙個特殊的字串,對於每乙個匹配的檔案,{}會被替換成相應的檔名;
eg:將找到的檔案全都copy到另乙個目錄:
find . -type f -mtime +10 -name "*.txt" -exec cp {} old ;
5.7 結合多個命令
tips: 如果需要後續執行多個命令,可以將多個命令寫成乙個指令碼。然後 -exec 呼叫時執行指令碼即可;
-exec ./commands.sh {} ;
-print的定界符
預設使用' '作為檔案的定界符;
-print0 使用''作為檔案的定界符,這樣就可以搜尋包含空格的檔案;
find 命令 Linux命令篇 find命令
find name txt o name pdf print演示結果 find regex txt pdf iregex 忽略大小寫的正則 查詢所有非txt文字 find name txt print演示結果 列印出當前目錄的檔案 深度為1 find maxdepth 1 type f演示結果 5....
Linux 指令篇 檔案目錄管理 find
linux 指令篇 檔案目錄管理 find 名稱 find 用法 find 使用說明 將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱 類別 時間 大小 許可權等不同資訊的組合,只有完全相符的才會被列出來。find 根據下列規則判斷 path 和 expression,在命...
Linux 指令篇 檔案目錄管理 find
linux 指令篇 檔案目錄管理 find 名稱 find 用法 find 使用說明 將檔案系統內符合 expression 的檔案列出來。你可以指要檔案的名稱 類別 時間 大小 許可權等不同資訊的組合,只有完全相符的才會被列出來。find 根據下列規則判斷 path 和 expression,在命...