Linux命令(七)查詢檔案或目錄 find

2022-02-22 09:27:51 字數 2668 閱讀 6581

find 命令可以根據給定的路勁和表示式查詢指定的檔案或目錄。find 引數選項很多,並且支援正規表示式,功能強大。 和管道結合使用可以實現複雜的功能,是系統管理和普通使用者必須掌握的命令。 

一、find  命令格式說明

path find命令查詢的目錄路徑。

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

-exec find 命令對匹配的檔案執行該引數所給出的shell命令。

-ok 和 -exec的作用相同,只是更安全,在執行每個命令之前,都會給出提示,讓使用者來確定是否執行。

二、find命令常用引數說明

-name   按照檔名查詢檔案

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

-prune 按照檔案許可權進行查詢檔案 

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

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

-mtime -n +n 按照檔案更改的時間來查詢檔案,-n 表示更改時間距現在 n 天以內,+n 表示更改時間距現在 n 天以前

-nogroup 查詢無效所屬組的檔案

-nouser 查詢無效屬主檔案

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

-follow 如果 find 查詢的為鏈結檔案,就跟蹤至連線所指向的檔案

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

-fstype 查詢位於某一型別檔案系統中的檔案

-depth 在查詢檔案時,首先查詢當前目錄中的檔案,然後再在其子目錄中查詢

-size n 查詢檔案長度為 n 塊的檔案,帶有 c 時表示檔案長度以位元組計

-type 查詢某一型別的檔案

-amin n 查詢系統中最後 n 分鐘訪問的檔案

-atime n 查詢系統中最後 n*24 小時訪問的檔案

-cmin n 查詢系統中最後 n 分鐘被改變檔案狀態的檔案

-ctime n  查詢系統中最後 n*24 小時被改變檔案狀態的檔案

-mmin n 查詢系統中最後 n 分鐘被改變檔案資料的檔案

-mtime n  查詢系統中最後 n*24 小時被改變檔案資料的檔案

-empty 查詢系統中空白的檔案或目錄,或目錄中沒有子目錄的資料夾

-false 查詢系統中總是錯誤的檔案

-gid n 查詢系統中檔案數字組id為 n 的檔案

-daystart 測試系統中從今天開始 24 小時以內的檔案,用法類似於 -amin

-help 顯示命令摘要(幫助)

-maxdepth levels 在某個層次目錄中按照遞減方法查詢

三、find基本用法

find 如不加任何引數,表示查詢當前路徑下的所有檔案和目錄

find  -print    將結果列印到標準輸出

find /data/log   指定路勁查詢

find   /   -name  "abc.txt"   在系統中查詢 abc.txt 如果執行完畢沒有找到,則說明系統中不存在該檔案

find 還支援正規表示式查詢

find /data/logs -mame "*.log"  -type f -printf    查詢符合指定字串的檔案

find . -name "[0-9]" -type f   查詢以數字開頭的檔案

find / -mtime -1 |head  查詢系統內最近24小時修改過的檔案

find / -mmin  -15|head   查詢系統內最近15 分鐘修改過的檔案

find 使用 type 選項可以查詢特定的檔案型別,常見型別如下

b 塊裝置檔案

d 目錄

c 字元裝置檔案

p 管道檔案

l 符號鏈結檔案

f 普通檔案

find  . -type d  查詢當前路徑中的所有目錄

find  . -type f  查詢當前路徑中的所有檔案

find  . -type l   查詢當前路徑中的所有符號鏈結檔案

更多例項將在使用中不斷補充.....

四、xargs命令

find命令可以把匹配到的檔案傳遞給 xargs 命令執行,在使用 find 命令的 -exec 選項處理匹配到的檔案時,find將所有匹配到的檔案一起傳遞給 exec 執行。由於有些系統對能夠傳遞給 exec 的命令長度有限制,這樣會引起溢位錯誤。這時可以使用 xargs 命令。

find / type f -print | xargs file    查詢系統中的每乙個普通檔案,並用 file 命令來測試它們分別屬於哪一類檔案。

find . -type f -name "\.log" -print | xargs rm  查詢當前目錄下的 .log 檔案,並刪除 。

find . -type f -exec ls -l {} \;  用 ls -l 列出所有匹配到的檔案。

find logs  -type f -mtime +5 -exec rm {} \;  查詢 log 中更改時間在 5 天前的檔案並刪除。

find logs -type f -ok rm {} \;  查詢 log中的所有普通檔案並在刪除前確認。  

find . -type f -name "\.log" -print | gerp "node"     查詢當前目錄下的 .log 檔案,並從查詢結果中篩選出帶有 node 字串的檔案 。

find 查詢檔案或目錄

find 查詢檔案或目錄 2007 12 18 10 50 02 分類 shell 舉報 字型大小 訂閱 功能說明 find指令可以在系統中查詢你想要的任何檔案或目錄,你可以通過不同的引數來查詢你想要的。該指令也是系統管理員最常用 最強大 最方便的查詢檔案和目錄的指令。基本語法 find path ...

查詢檔案或目錄指令

linux 下find 指令可以查詢指定路徑下的檔案或路徑 find type f grep f 表示檔案 d 表示路徑 表示檢索關鍵字 h follow command line symlinks l follow all symlinks match filters name pattern f...

find 查詢檔案或目錄

ind命令用來在指定目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名。如果使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案。並且將查詢到的子目錄和檔案全部進行顯示。find 選項 引數 amin 分鐘 查詢在指定時間曾被訪問過的檔案或目錄,單位以分鐘計算 at...