Unixの魔法、ディレクトリのツリーからすべての.pycファイルを削除しますか?


11

ディレクトリのツリーからすべての.pycファイルを削除する簡単な方法はありますか?

回答:


28

GNU findを持っているなら、おそらく欲しい

find <directory name> -name '*.pyc' -delete

ポータブルなものが必要な場合は、

find <directory name> -name '*.pyc' -exec rm {} \;

速度は大したある場合、あなたはGNUの検索を持っているし、GNUその後、xargsの

find <directory name> -name '*.pyc' -print0|xargs -0 -p <some number greater than 1> rm

ただし、ほとんどの場合、I / Oを待機しているという事実のために、これによって速度が大幅に向上することはほとんどありません。


完璧...ありがとう。それは私がいつも忘れているxargsです
インター

2
名前にスペースが含まれるファイルがある場合に備えて、-print0と "xargs -0"を常に使用する習慣になりました。
ポールトムブリン

あなたは完全に正しい、元々それについて考えるべきだった。それを反映するように編集された。
シアン

4
「-print0 |」の代わりに「-delete」を直接使用することもできます。xargs -0 rm '。しかし、このオプションがすべてのバージョンの「find」に存在するわけではないのは事実です。
ロラフ2009

6

findコマンドを使用:

find /path/to/start -name '*.pyc' -exec rm -f {} \;

遅すぎる。xargsの使用はより高速です。または、findのバージョンでサポートされている場合\;は、末尾の「」を「」に変更してください+
追って通知があるまで一時停止します。

1
それは少し遅いかもしれません-それはそれらをバッチ処理するのではなく、各ファイルに対して1回「rm」を実行しますが、それを行う最も移植性の高い方法です。OPは、どの種類のUNIXを使用しているかを言っていませんでした。Solarisfindには、まだ-print0機能がありません。
ケンスター

1
+ 1、OPはUnixではなくLinuxであると言いました。これは最高のポータブルソリューションです。

xargsを使用してもコマンドラインに非常に長いエラーが残る可能性がある場合は、このソリューションが大量のファイルを削除できる唯一の方法だと思います。+1、何年も前から私の選択です。
drAlberT

メイクファイルを使用してプロジェクトをビルドしている場合は、これをターゲット「クリーン」に追加することができます。
トムニュートン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.