删除文件夹中除标题中定义字符串的图像之外的所有图像?

删除文件夹中除标题中定义字符串的图像之外的所有图像?

我的一个文件夹中有大约 50,000 张图片(我使用的是 Mac OSX),我想删除所有这些图片,除非它们有x300或者300x在其中。我希望可以使用终端或自动程序来实现,但不知道该怎么做!

谢谢!

答案1

使用终端,有很多方法可以做到这一点。一种选择是使用寻找(1):

find /your/dir -type f \! -name 'x300' \! -name '300x' -exec echo rm -f {} \;

替换/your/dir为文件所在的位置。一旦你完全确定寻找命令只会命中你真正想要删除的文件R M,从执行部分中删除“echo”并重新执行以实际删除文件,而不是打印出要删除的文件。

一些解释:
find /your/dir 查找 /your/diir 中的所有文件和文件夹,如下所示。
-type f 仅过滤文件
-namex300仅过滤文件名中包含 x300 的内容。
! 反转此操作(因此仅过滤不包含的文件)。

-exec 执行命令。您可以执行 echo,也可以使用-printthem。
您可以使用 rm 作为删除命令,或者-delete使用 finds building。

{}是当前文件名。如果您使用,\;则 {} 将被一次替换为一个文件名。(因此,如果您有 10000 个文件要删除,它将启动 10000 次新的 rm)。

您也可以用它来替换,+以便一次性获取大量文件(尽管 -delete 甚至更高效)。

相关内容