我的一个文件夹中有大约 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,也可以使用-print
them。
您可以使用 rm 作为删除命令,或者-delete
使用 finds building。
{}
是当前文件名。如果您使用,\;
则 {} 将被一次替换为一个文件名。(因此,如果您有 10000 个文件要删除,它将启动 10000 次新的 rm)。
您也可以用它来替换,+
以便一次性获取大量文件(尽管 -delete 甚至更高效)。