我重命名了一个相当大的项目中的一些文件,并想删除他们留下的.pyc文件。我尝试了bash脚本:

 rm -r *.pyc

但它并没有像我想的那样递归遍历文件夹。我做错了什么?


当前回答

你可以运行find。- name”*。Pyc " -type f -delete。

但要谨慎使用。首先运行查找。- name”*。Pyc”键入f以查看要删除的文件。

此外,确保-delete是命令中的最后一个参数。如果你把它放在名字*之前。Pyc参数,它将删除所有内容。

其他回答

在当前版本的debian中,你有pyclean脚本,它是python-minimal包。

用法很简单:

pyclean .

此外,人们通常希望删除所有*。佩克,*。Pyo文件和__pycache__目录递归在当前目录中。

命令:

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

Py3clean适合我!

cd /usr/local/lib/python3.9
sudo py3clean -v .

我曾经用过一个别名

$ which pycclean

pycclean is aliased to `find . -name "*.pyc" | xargs -I {} rm -v "{}"'

如果你使用bash >=4.0(或zsh)

rm **/*.pyc

注意*/*。Pyc选择直接的一级子目录下的所有. Pyc文件。Pyc递归地扫描整个目录树。以foo/bar/qux为例。Pyc将被rm **/*删除。Pyc而不是*/*. Pyc。

必须启用globstar shell选项。启用globstar:

shopt -s globstar

并检查其状态:

shopt globstar