为什么命令:
rm **/*.pyc
什么都不删除?
实现预期行为的正确方法是什么?
答案 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 {} \;