从文件夹和子文件夹中删除具有某些扩展名的所有文件

时间:2014-12-11 18:22:08

标签: bash rm

为什么命令:

rm **/*.pyc

什么都不删除?

实现预期行为的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

要使您的命令有效,您需要先启用globstar

shopt -s globstar

启用globstar模式后,**/*.pyc将展开以匹配当前目录和所有子目录中以.pyc结尾的文件。

或者你可以使用find

find -name "*.pyc" -delete

这将搜索当前目录和所有子目录中以.pyc结尾的任何内容,删除它找到的任何内容。要将其限制为仅匹配文件,您也可以添加-type f开关,尽管这可能不是问题(在原始命令中不会出现这种情况)。

或者,如果您的查找版本不理解-delete

find -type f -name "*.pyc" -exec rm {} \;