在终端 Mac OS X 中大量删除具有公共前缀的文件

Massively delete files with common prefix in terminal Mac OS X

我有一堆这样的图片:

除了没有后缀的(-150x150, -256x256, etc).

,我想全部删除

例如,看上图我只想保留bg_section_2.jpgbg_section_bw.jpgbg_section_half_2.jpg并删除其他带有前缀的。

The numbers of the sizes (-150x150...etc) are not the same in all the examples. But they have the same structure.

非常感谢您的宝贵时间! :)

您可以使用查找来完成此操作。 -regex 选项接受具有一个或多个数字 [0-9]+ 的所有内容,后跟一个 x,然后再依次跟一个或多个数字 [0-9]+。请确保您首先通过复制目录来测试它并检查结果;-)

$ mkdir tmp
$ cd tmp
$ touch {a,b,c}.png; touch {a,b,c}-{10,11}x{150,4000}.png
$ find . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;
$ ls
a.png  b.png  c.png

根据 s3cur3 的通知(谢谢!),您应该在 Mac 上添加 -E 标志:

$ find -E . -type f -regex '.*[0-9]+x[0-9]+.*' -exec rm {} \;