現在のディレクトリ、空のディレクトリ、現在のディレクトリなど、複数の名前のファイルを含むディレクトリ内のすべてのファイルを繰り返し削除します。

現在のディレクトリ、空のディレクトリ、現在のディレクトリなど、複数の名前のファイルを含むディレクトリ内のすべてのファイルを繰り返し削除します。

*.pycをすべて削除しようとしています。パイキャッシュそして、見たくない他の愚かなファイル言語を実行する必要があります。私が得た最も近いもの

sudo rm -rf **/*__pycache__

答え、これはパスの深いところでは動作しません。

sudo rm -R -f {__pycache__,.*.pyc}

これはうまくいきませんパイキャッシュフォルダ。

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

rmシェルがそれをサポートしている場合は、ファイルの再帰の閲覧と削除にシェル自体を使用できます。

bashたとえば、シェルオプションでは、globstarglobパターンが**すべての深さのサブディレクトリと一致することを許可し、汎用globbing演算子を使用してファイルを一致させることもできます。

あなたの場合:

rm **/{*.pyc,__pycache__}

します。

まず、次を有効にしますglobstar

shopt -s globstar

答え3

あなたの場合にも行うことができます

find . -name "__pycache__" -o -name "*.pyc" | xargs rm -rf

組み込みコマンドのみを使用して作成されました。 globstarを有効にするのを防ぎます。

関連情報