删除目录下所有指定的档案(如:.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 {} \;