linux 檔案查詢 find 命令詳解

2021-08-07 04:04:06 字數 2169 閱讀 2028

**

linux下檔案查詢常用命令有locate和find命令。locate命令不是實時查詢,所以查詢的結果不精確,但查詢速度很快。因為它查詢的不是目錄,而是乙個資料庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。linux系統自動建立這個資料庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新資料庫。find命令是實時查詢,是遍歷目錄中所有檔案完成查詢,因此查詢結果精確,並且支援眾多選項,功能非常強大,但是速度慢。 在遍歷乙個大的檔案系統(30g以上)執行乙個非常消耗資源的find命令時,都傾向於把它放在後台執行,下面將重點講解find 命令。

find pathname -options [-print -exec -ok …]

1 命令功能:用於在檔案樹種查詢檔案,並作出相應的處理

- 命令引數:

pathname: find命令所查詢的目錄路徑,預設為當前路徑

-options 檔案查詢的條件引數

[-print -exec -ok …] 處理動作,預設為顯示。

-print: find命令將匹配的檔案輸出到標準輸出

-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為』command』 \;,注意和\;之間的空格。

-ok:和-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。

name 按照檔名查詢檔案。

-perm 按照檔案許可權來查詢檔案。

-prune 使用這一選項可以使find命令不在當前指定的目錄中查詢,如果同時使用-depth選項,那麼-prune將被find命令忽略。

-user 按照檔案屬主來查詢檔案。

-group 按照檔案所屬的組來查詢檔案。

-mtime -n +n 按照檔案的更改時間來查詢檔案, - n表示檔案更改時間距現在n天以內,+ n表示檔案更改時間距現在n天以前。find命令還有-atime和-ctime 選項 ,用法和 -mtime 一樣。

-nogroup 查詢無有效所屬組的檔案,即該檔案所屬的在/etc/groups中不存在。

-nouser 查詢無有效屬主的檔案,即該檔案的屬主在/etc/passwd中不存在。

-newer file1 ! file2 查詢更改時間比檔案file1新但比檔案file2舊的檔案。

-type 查詢某一型別的檔案,例如:

b - 塊裝置檔案。

d - 目錄。

c - 字元裝置檔案。

p - 管道檔案。

l - 符號鏈結檔案。

f - 普通檔案。

-depth :使查詢在進入子目錄前先行查詢完本目錄

-fstype:查詢位於某一型別檔案系統中的檔案,這些檔案系統型別通常可以在配置檔案/etc/fstab中找到,該配置檔案中包含了本系統中有關檔案系統的資訊。

-mount:在查詢檔案時不跨越檔案系統mount點。

-follow:如果find命令遇到符號鏈結檔案,就跟蹤至鏈結所指向的檔案。

-cpio:對匹配的檔案使用cpio命令,將這些檔案備份到磁帶裝置中。

print //預設情況下的動作

-ls //查詢到後用ls 顯示出來

-ok [commend] //詢問使用者是否要執行後面的命令

-exec [commend] //查詢後執行命令的時候不詢問使用者,直接執行

注意 :-ok和-exec命令將命令列上後續的引數作為他們引數的一部分,直到被\;序列終止。魔術字串{}是-ok和-exec命令的乙個特殊型別的引數,它將被當前檔案的完整路徑取代。

-print:預設的處理動作,顯示至螢幕

-delete:刪除查詢到的檔案

-fls file:查詢到的所有檔案的長格式資訊儲存至指定檔案中

{}: 用於引用查詢到的檔名稱自身

| xargs // xargs 可以用來傳遞引數,可以對find 後的結果執行特定的命令,這個非常實用而且簡潔,個人覺得有了xargs 後 -exec 顯得很多餘了

find傳遞查詢到的檔案至後面指定的命令時,查詢到所有符合

條件的檔案一次性傳遞給後面的命令

linux檔案查詢find命令

1.locate 與 find命令的區別 locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要乙個資料庫,這個資料庫由每天的例行工作 crontab 程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。即先執行 updatedb 無論在那個目錄中均可,可以放在cront...

Linux檔案查詢find命令

作用 實時查詢工具,通過遍歷指定路徑完成問件查詢,遞迴地在層次目錄中處理檔案 find搜尋目錄樹上的每乙個檔名,它從左至右運算給定的表示式,按照優先規則進行匹配,直到得出結果 左邊運算在 與 操作中得出假,在 或 操作中得出真 然後 find移向下乙個檔名。第乙個以 或 這些字元起始的引數是表示式的...

linux檔案查詢 find命令

1 find命令的格式 find pathname options print exec ok 2 find命令的引數 pathname find命令所查詢的目錄路徑。例如用 來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案...