注文する
$ find ~ -name .DS_Store -ls -delete
Mac OS Xで動作しますが、
$ find ~ -name __pycache__ -type d -ls -delete
いいえ - ディレクトリが見つかりましたが削除されませんでした。
なぜ?
PS。私もできることを知っています
$ find ~ -name __pycache__ -type d -ls -exec rm -rv {} +
問題はなぜ find -delete
するいいえ働く
ベストアンサー1
find
フラグは-delete
次のように動作します。rmdir
ディレクトリを削除するとき。ディレクトリに到達したときに空でない場合、ディレクトリは削除できません。
まず、このディレクトリを消去する必要があります。-type d
を指定しているため、find
これは行われません。
2回実行してこの問題を解決できます。まず、名前付きディレクトリ内のすべてのエントリを削除してから、名前付き__pycache__
すべてのディレクトリを削除します__pycache__
。
find ~ -path '*/__pycache__/*' -delete
find ~ -type d -name '__pycache__' -empty -delete
それほど厳しくないコントロールですが、1行で書かれています。
find ~ -path '*/__pycache__*' -delete
これにより、自宅からそのルートの一部である__pycache__
すべてのアイテムが削除されます。