用指令模式搜尋檔案並直接刪除-使用find指令


用指令模式搜尋檔案並直接刪除-使用find指令


使用指令來搜尋硬碟中的檔案,使用locate指令是最快速的,但是使用locate搜尋的結果並不能直接做處理,需要一些小技巧才能套進其他指令裡。但
是使用find指令卻可以克服這個問題,因為find指令有一個"-exec"的參數,可以讓我們針對搜尋出來的結果直接套用到指令裡。舉個例子來說,通
常系統中總會有一些無用的小檔案零散分佈在各個目錄中,例如log檔或是文字的備份檔。若是要一個個的去找出來再使用rm指令來刪除的話,做完這些事,大
概鍵盤也快散了吧!其實可以使用find指令配合"-exec"參數就可以做到了。

以檔案thumbs.db來做例子,這個檔案常出現在各個角落裡,但幾乎沒什麼特別作用。



# find . -name thumbs.db -exec rm {} ";"



其中的{}代表的就是使用find指令所查詢到的所有結果,exec參數需要以分號結尾,但必須要加上引號""或是跳脱字元\。-name參數也可以使用
萬用字元*,但是必須加上引號,才不會發生錯誤。以上的指令也可以改寫成以下的指令:


# find . -name thumbs.db -exec rm {} \;


以下是使用萬用字元的例子


# find . -name "*.bak" -exec rm {} ";"


會將目前這個目錄以下所有目錄中副檔名是bak的檔案予以刪除。

沒有留言:

張貼留言

dnf upgrade fails with Error: GPG check FAILED

 OS: Fedora 36 今天在做  dnf  更新的時候,突然有很多 package 都出現簽章問題無法更新。類似如下的錯誤訊息 .... is not signed. ...... is not signed. ......... is not...