刪除目錄下所有指定的檔案(如:.DS_Store)

刪除目錄下所有指定的檔案(如:.DS_Store)

一般的情況下有可能想要刪除目錄下的某個檔案,當符合的檔案只有幾個時刪除是很容易的,但目錄下符合的檔案有很多時該怎麼辬? 像Mac目錄下都會有個系統產生的隱藏檔.DS_Store,如果要刪除每個目錄下的.DS_Store就必需要靠指令搭配才能省時省力,接下來會告訴你如何使用簡單的指令來完成。

尋找指定的檔案

在Command Line下要尋找該目錄下指定檔案是否存在時可以執行:

find 目錄 -name "你的檔案名稱"

實際操作:

find . -name ".DS_Store"


尋找該目錄下.DS_Store檔案,結果如下:

./Library/Application Support/.DS_Store
./Library/Application Support/com.trankynam.XtraFinder/.DS_Store
./Library/Application Support/CoRD/.DS_Store
./Library/Application Support/Developer/Shared/Xcode/.DS_Store
./Library/Application Support/DEVONthink Pro 2/.DS_Store
./Library/Application Support/Haroopad/Themes/.DS_Store


刪除檔案

刪除檔案指定為rm,一般刪除檔案使用:

rm 你的檔名或完整路徑

實際操作:

rm .DS_Store

如果刪除指令的對像可以是 檔案 也可以是 目錄 ,不過想要刪除時不管如何都強制刪除,一般都會另外加上-rf指令:

rm -rf .DS_Store

尋找並刪除檔案

將以上所了解的結合一下,find指令可以搭配exec命令來將每次尋找到的結果時執行某個指定的程式:

find / -name ".DS_Store" -depth -exec 命令 {} \;

因為刪除指令對某些人來說可能有疑慮,所以先看一下整個結果再確定是否要加上rm

find / -name ".DS_Store" -depth -exec echo ----{} \;

符合搜尋條件時執行echo將內容印出,為了看的出來差別,在前面加上----,結果:

----./Library/.DS_Store
----./Library/Application Support/.DS_Store
----./Library/Application Support/com.trankynam.XtraFinder/.DS_Store
----./Library/Application Support/CoRD/.DS_Store
----./Library/Application Support/Developer/Shared/Xcode/.DS_Store
----./Library/Application Support/DEVONthink Pro 2/.DS_Store
----./Library/Application Support/Haroopad/Themes/.DS_Store

搜尋結果沒問題後,利用此命令我們在後接上rm指令來刪除:

find / -name ".DS_Store" -depth -exec rm {} \;