find 和grep的差異

2021-08-29 01:35:35 字數 2647 閱讀 5812

find是利用檔名和檔案屬性,來找檔案的,grep是對檔案內容逐行掃瞄,來找匹配的內容。

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和grep的使用

1 find 語法格式 find path options tests actions path 是路徑,可以是絕對路徑 相對路徑,或者多個路徑。options 下面列出一些主要選項 還可以使用操作符來組合這些測試項。可以使用括號來強制測試和操作符的優先順序,但是要注意使用使用反斜槓 來引用括號,以...

find和grep的使用

1 find命令的使用 在linux中可以使用find命令在指定的目錄下查詢檔案。任何位於引數之前的字串都將被視為欲查詢的目錄名,當使用該命令時,不設定任何引數,則find命令將在當前目錄下查詢子目錄與檔案,並將查詢到的檔案進行全部顯示。1 命令語法 find命令的語法如下 find path op...

linux的grep和find命令

在linux下面工作,有些命令能夠大大提高效率。本文就向大家介紹find grep命令,他哥倆可以算是必會的linux命令,我幾乎每天都要用到他們。本文結構如下 grep命令 find命令是乙個無處不在命令,是linux中最有用的命令之一。find命令用於 在乙個目錄 及子目錄 中搜尋檔案,你可以指...