我刚刚收到一个包含大约 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 个文件 - 在网络上推送文件方面节省了很多!