meaning - bash指令
如何從項目中刪除所有.pyc文件? (11)
Django擴展
注意:這個答案對於已經使用Django Extension的 Django項目非常具體。
python manage.py clean_pyc
該實現可以在其源代碼中查看。
我已經在一個相當大的項目中重新命名了一些文件,並希望刪除他們留下的.pyc文件。 我嘗試了bash腳本:
rm -r *.pyc
但是,這並不像我想的那樣通過文件夾遞歸。 我究竟做錯了什麼?
find . -name '*.pyc' -delete
當然是最簡單的。
只需要將其他變體添加到混合中,您也可以使用如下所示的反引號:
rm `find . -name *.pyc`
在當前版本的debian中, pyclean
腳本是python-minimal
軟件包。
用法很簡單:
pyclean .
完全遞歸
ll **/**/*.pyc
rm **/**/*.pyc
對於Windows用戶:
del /S *.pyc
此外,人們通常要在當前目錄中遞歸刪除所有*.pyc
, *.pyo
文件和__pycache__
目錄。
命令:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
添加到你的~/.bashrc
:
pyclean () {
find . -type f -name "*.py[co]" -delete
find . -type d -name "__pycache__" -delete
}
這將刪除所有.pyc和.pyo文件以及__pycache__
目錄。 它也非常快。
用法很簡單:
$ cd /path/to/directory
$ pyclean
$ find . -name '*.pyc' -delete
這比快
$ find . -name "*.pyc" -exec rm -rf {} \;
find . -name "*.pyc" -exec rm -f {} \;
如評論中所述,您也可以使用-delete
操作
find . -name \*.pyc -delete
find . -name '*.pyc' -print0 | xargs -0 rm
該查找遞歸查找* .pyc文件。 xargs獲取該名稱列表並將其發送給rm。 -print0和-0告訴兩個命令用空字符分隔文件名。 這使它可以在包含空格的文件名上正確工作,甚至包含一個新行的文件名。
使用-exec的解決方案可以工作,但它會為每個文件創建一個新的rm副本。 在一個緩慢的系統上,或者有很多文件,這將花費太長時間。
您還可以添加更多的參數:
find . -iname '*.pyc' -print0 | xargs -0 --no-run-if-empty rm
iname增加了不區分大小寫,如* .PYC。 如果你沒有這樣的文件,no-run-if-empty讓你不會從rm中得到一個錯誤。