【发布时间】:2011-10-13 23:23:54
【问题描述】:
我刚刚收到了一个目录,里面有大约 40,000 多张图片,并且该目录包含每个文件的三个版本,这让我不得不在服务器之间传输。
我正在寻找一种使用 bash(OSX 终端)查找和删除(rm)所有文件的方法,例如,文件名末尾带有 _web 或 _thumb 的文件,就在 .jpg(或 .gif ,或 .png,或 .bmp 等)扩展名。
所以,明确地说,我有以下文件:
1.jpg
1_web.jpg
1_thumb.jpg
2.gif
2_web.gif
2_thumb.gif
etc.
我只希望保留“1.jpg”、“2.gif”等。
我过去能够重命名扩展,但我的命令行功能很弱,我正在竭尽全力试图找出可重用的东西(我需要做这几次,因为我正在为这个项目编写一个持续迁移脚本)。
编辑:在这方面做了更多工作后,我发现 rm 和 xargs 有一些奇怪的限制,我必须解决这些限制。我基本上调整了下面接受的答案并最终得到:
$ find . -name '*_thumb.*' -print0 | xargs -0 rm -f
$ find . -name '*_web.*' -print0 | xargs -0 rm -f
现在我减少了大约 10,000 个文件 - 在网络上推送文件方面节省了很多!
【问题讨论】:
标签: command-line rm