我想删除特定目录中的所有png图像。
我有以下目录和图片,如何一次删除所有png文件?
. ├── 1 │ ├── 2 │ │ ├── 3 │ │ └── 3.png │ └── 2.png └── 1.png
我尝试了以下命令。
rm -rf *.png #only 1.png was deleted.
rm -rf **/*.png #only 2.png was deleted.
rm -rf **/**/*.png #only 3.png was deleted.
答案 0 :(得分:2)
您需要设置globstar
选项(在Bash 4中引入)才能使递归通配工作
globstar
如果设置,文件名扩展上下文中使用的模式“**”将匹配所有文件以及零个或多个目录和子目录。如果模式后跟'/',则只有目录和子目录匹配。
所以这应该有用
shopt -s globstar
rm -f **/*.png
或者使用find
和delete
操作
find . -name '*.png' -delete
rm
: -r
切换“递归删除目录及其内容”(来源:man rm)。默认情况下,rm
无法删除目录。交换机不会更改文件名扩展或通配的工作方式。
答案 1 :(得分:0)
find . -name \*.png | xargs rm
答案 2 :(得分:0)
find . -name "*.png" -exec rm -rf {} \;
这篇文章有一个非常相似的问题:How do I remove all .pyc files from a project?