我剛剛遞過一個包含大約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」 等依然存在。
我已經可以重命名擴展名了,但是我的命令行fu非常弱,而且我正努力想找出可重用的東西(我需要做這個幾次,因爲我正在爲這個項目開發一個連續的遷移腳本)。
編輯:經過多一點工作後,我發現rm和xargs的一些奇怪的限制,我不得不解決。我基本適應接受的答案下方,結束了:
$ find . -name '*_thumb.*' -print0 | xargs -0 rm -f
$ find . -name '*_web.*' -print0 | xargs -0 rm -f
現在只剩下大約10,000個文件 - 相當節省圍繞推動在網絡上的文件的條款!
我發現居然有室爲它多少可以接受的參數限制通過通配符(所以第二個例子不能很好地工作)。請參閱:http://www.moundalexis.com/archives/000035.php – geerlingguy