shell四劍客之find

2021-08-07 13:27:13 字數 2835 閱讀 8528

find主要用來查詢檔案名,其基本格式

find path -option

[-print][

-exec

-ok command]

{} \;

常用引數如下

-name   

find .

-name four 查詢名為four的檔案(包括目錄和檔案)

find .

-name

"fou*" 查詢開頭是fou的檔案

find .

-name

"[a-z]*" 查詢大寫字母開頭的檔案

find .

-name

"*.txt" 查詢以.txt結尾的檔案

-user

find .

-user lee 查詢屬主為lee的檔案

-group

find .

-group lee 查詢屬組為lee的檔案

-type

find .

-type d 查詢檔案型別為目錄的檔案,除了d,還有f,b,c,p,l,s,分別指普通檔案,塊裝置,字元裝置,管道,鏈結檔案和socket套接字

find .

!-type f 查詢非普通檔案的檔案,符號!表示反向選擇

-size

find .

-size

10m 查詢大小大於10m的檔案,+n表示大於nm的檔案,-n表示大小小於nm的檔案

-perm

find .

-perm

600 查詢執行許可權為600的檔案

find .

-perm

-007 查詢777許可權的檔案,與-perm

777一樣效果,+

222表示檔案許可權在222以上

-mtime

find .

-mtime

2 查詢檔案內容修改在兩天前的檔案,n代表n天前的當天,-n代表n天以內,+n代表n天以前

-atime

find .

-atime

2 查詢2天前被訪問過的檔案,n表示n天前當天被訪問過,-n表示n天以內被訪問過,+n表示n天以前被訪問過的

-ctime

find .

-ctime

+4 查詢4天以前檔案狀態被修改的檔案,比如改了檔案許可權等,-n表示n天以內檔案狀態有變過,+n表示n天以前檔案狀態被改過,n表示n天前當天檔案狀態被改了。

-mmin

/-amin

/-cmin與上面類似,只是單位變成了分鐘

-depth 表示在進入子目錄查詢之前先在查詢完當前目錄

-maxdepth 只在當前資料夾這一級來搜尋,而不去遞迴向下搜尋

find .

-maxdepth

1-name four 在當前目錄下找名為four的,不去子目錄下找

find .

-maxdepth

1-type f 注意maxdepth的位置要在前面

find .

-maxdepth

1-size

+100m -exec ls -lh {} \; 把大於100m的檔案顯示出來,不搜尋跨級目錄下的檔案

-a

find .

-name

"four*"

-type d

find .

-name

"four*"

-a-type d 這兩個語句的結果是一樣的,只是-a把-name

"four*"和-type d兩個表示式組合在一起

-exec表示對搜尋到的每個檔案執行指定的命令

cp表示複製

{}表示搜尋到的每個檔案

\;表示命令的結束,為避免轉義故在;前加符號\

如果是移動的話則是-exec mv {} {}.other \;

find . -name "*.txt" -type f -exec cp {} /tmp \;    查詢.txt結尾的普通檔案並複製到tmp目錄下,-
find .

-name

"[a-z]*"

| xargs chmod 600

-r 查詢大寫字母開頭的檔案及子檔案並把許可權設定為600,注意-r代表子檔案的許可權也會修改

可以同時指定多個要搜尋的資料夾,而如下的搜尋有重複的結果,因為當前目錄就是在/root下面(符號.代表當前目錄)

[root@localhost ~]# find . /root -name four

./package/four

./four

/root/package/four

/root/four

如果指定要搜尋的資料夾本身不存在,則會直接報錯

[root@localhost ~]# find hello -name abc

find: 「hello」: 沒有那個檔案或目錄

-newerab a和b代表不同型別,包括訪問時間a,修改時間m和狀態變化時間c等

find .

-newermt

2017-08

-23 表示修改時間m比2017-08

-23新的檔案,t後面直接接時間

一般不直接在根目錄下用find去找檔案,因為會耗費不小系統資源,而是在相對目錄下去找

最後,find支援正則,預設型別是emacs,可以通過-regextype來指定要用的型別

Shell 程式設計四劍客之 Find

通過如上基礎語法的學習,讀者對 shell 程式設計有了更近一步的理解,shell 程式設計不再是簡單命令的堆積,而是演變成了各種特殊的語句 各種語法 程式設計工具 各種命令的集合。在 shell 程式設計工具中,四劍客工具的使用更加的廣泛,shell 程式設計四劍客包括 find sed grep...

shell四劍客之sed

格式 sed nefri 動作 其中n e f r i 動作有a,i,c,p,s n 預設把sed命令執行的結果,與原來的資料一起輸出到螢幕,如果加了 n,則只顯示sed處理後的內容 sed n 1p sed.txt a 在匹配的當前行的後面新增內容,add sed ahelloworld sed....

shell四劍客之sed

sed是乙個非互動式文字編輯器,它一次處理一行內容。作用 編輯乙個或多個檔案,簡化對檔案的反覆操作 編寫轉換程式等 在處理文字時把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 緊接著用sed命令處理緩衝區中的內容,處理完後把緩衝區的內容輸出至螢幕或寫入檔案。預設輸出到螢幕的文字已經修改,但檔案內容...