Linux指令篇 find命令

2021-09-26 10:54:35 字數 2441 閱讀 1730

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,在命...