Linux

遞歸刪除目前目錄下的所有文件、空目錄、多個文件名的目錄,包括目前目錄

  • November 21, 2018

我正在嘗試刪除所有 *.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用於刪除文件。

例如,在 中bashglobstarshell 選項允許 glob 模式**匹配任何深度的子目錄,您也可以使用正常的萬用字元來匹配文件。

在你的情況下:

rm **/{*.pyc,__pycache__}

會做。

首先,啟用globstar

shopt -s globstar

引用自:https://unix.stackexchange.com/questions/305796