Linux查詢find命令詳解

2021-09-11 05:37:12 字數 1938 閱讀 2730

在 linux 命令中,find用於在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名,其支援按名稱查詢、按正規表示式查詢、按檔案大小查詢、按檔案許可權查詢等多種查詢方式。如果在使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案,並且將查詢到的子目錄和檔案全部進行顯示。

語法:find + 目標目錄(路徑) + 《選項》 + 引數

常用選項列表

選項    含義

-perm 《許可權數值》    查詢符合指定的許可權數值的檔案或目錄

-type 《檔案型別》    只尋找符合指定的檔案型別的檔案

-name 《範本樣式》    指定字串作為尋找檔案或目錄的範本樣式

-expty    尋找檔案大小為 0 byte 的檔案,或目錄下沒有任何子目錄或檔案的空目錄

-ls    假設find指令的回傳值為ture,就將檔案或目錄名稱列出到標準輸出

-maxdepth 《目錄層級》    設定最大目錄層級

-mindepth 《目錄層級》    設定最小目錄層級

-exec 《執行指令》    假設find指令的回傳值為true,就執行該指令

-ok 《執行指令》    此引數的效果和指定-exec類似,但在執行指令之前會先詢問使用者,若回答y或y,則放棄執行命令

示例首先,給出演示使用的檔案結構:

示例 1:查詢當前目錄及其子目錄下所有檔案和資料夾

find .

1示例 2:在/testlinux目錄下查詢以.txt結尾的檔名

// 需要書寫完整的路徑

find /tmp/cg/testlinux -name "*.txt"12

示例 3:組合查詢檔案名以file1開頭(與、或、非)file2開頭的檔案

/*** 組合查詢語法:

* -a        與(取交集)

* -o        或(取並集)

* -not      非(同 !)

* !         非(同 not)

*/find . -name "file1*" -a -name "file2*"

find . -name "file1*" -o -name "file2*"

find . -name "file1*" -not -name "file2*"

find . -name "file1*" ! -name "file2*"12

3456

78910

1112

示例 4:根據檔案型別進行搜尋

/*** 查詢當前目錄及所有子目錄下的普通檔案

*/find . -type f12

345示例 5:基於目錄深度進行搜尋

/*** 限制最大深度為 3

*/find . -maxdepth 3 -type f

/*** 限制最大深度為 2

*/find . -maxdepth 2 -type f12

3456

78910

11示例 6:基於檔案許可權進行搜尋

/*** 搜尋許可權為 777 的檔案

*/find . -type f -perm 777

/*** 搜尋 .txt 格式且許可權不為 777 的檔案

*/find . -type f -name "*.txt" ! -perm 77712

3456

78910

11示例 7:借助-exec命令,將當前目錄及子目錄下所有.txt格式的檔案以file:檔名的形式列印出來

find . -type f -name "*.txt" -exec printf "file: %s\n" {} \;

1示例 8:借助-exec命令,將當前目錄及子目錄下所有 3 天前的.txt格式的檔案複製乙份到old目錄

find . -type f -mtime +3 -name "*.txt" -exec cp {} old \;

1

linux 檔案查詢 find 命令詳解

linux下檔案查詢常用命令有locate和find命令。locate命令不是實時查詢,所以查詢的結果不精確,但查詢速度很快。因為它查詢的不是目錄,而是乙個資料庫 var lib locatedb 這個資料庫中含有本地所有檔案資訊。linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用lo...

Linux檔案查詢命令及find詳解

1 locate工具 2 find工具 1 特點 1 依賴資料庫 可以用update更新資料庫,但費時長,現實企業環境最好不用 2 非實時查詢,結果非精確 3 查詢速度快 4 模糊查詢 1 特點 1 實時查詢,查詢速度慢 2 精確匹配 2 find命令格式 find options 查詢路徑 查詢條...

Linux中 find查詢命令用法詳解

linux下查詢檔案的命令有兩個,分別是locate 和 find。locate指令和find找尋檔案的功能類似,但locate是透過update程式將硬碟中的所有檔案和目錄資料先建立乙個索引資料庫,在 執行loacte時直接找該索引,查詢速度會較快,索引資料庫一般是由作業系統管理,但也可以直接下達...