Linux
遞歸刪除目前目錄下的所有文件、空目錄、多個文件名的目錄,包括目前目錄
我正在嘗試刪除所有 *.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
保持。
find . \( -name __pycache__ -o -name "*.pyc" \) -delete
如果您的 shell 支持,您可以使用 shell 本身進行遞歸遍歷並
rm
用於刪除文件。例如,在 中
bash
,globstar
shell 選項允許 glob 模式**
匹配任何深度的子目錄,您也可以使用正常的萬用字元來匹配文件。在你的情況下:
rm **/{*.pyc,__pycache__}
會做。
首先,啟用
globstar
:shopt -s globstar