我正在尝试删除所有 *.pyc 和pycache,以及任何其他我不想看到的愚蠢文件语言需要运行。我得到的最接近的是
sudo rm -rf **/*__pycache__
答案,这在路径深处不起作用,并且
sudo rm -R -f {__pycache__,.*.pyc}
这不起作用pycache文件夹。
webapi/__pycache__
webapi/cool_app/__pycache__
webapi/cool_app/bad_file.pyc
webapi/cool_app/keep_this_awesomeness.py
webapi/cool_app/sweet_folder/__pycache__
webapi/cool_app/sweet_folder/bad_file.pyc
webapi/cool_app/sweet_folder/keep_this_awesomeness.py
仅有的
webapi/cool_app/keep_this_awesomeness.py
webapi/cool_app/sweet_folder/keep_this_awesomeness.py
保持。
答案1
find . \( -name __pycache__ -o -name "*.pyc" \) -delete
答案2
如果您的 shell 支持,您可以使用 shell 本身进行递归遍历并用于rm
删除文件。
例如,在 中bash
,globstar
shell 选项允许 glob 模式**
匹配任何深度的子目录,并且您还可以使用常规的 globbing 运算符来匹配文件。
在你的情况下:
rm **/{*.pyc,__pycache__}
会做。
首先,启用globstar
:
shopt -s globstar
答案3
在你的情况下,你也可以这样做
find . -name "__pycache__" -o -name "*.pyc" | xargs rm -rf
仅使用内置命令制作。它可以避免您启用 globstar。