9

これは投稿で何度も出てきたので、stackoverflow のすべての親切な人々に感謝の意を表します。

Unix のコマンド ライン/ターミナルから大量の削除を実行したいと思ったことはありませんか? おそらく、次のような構成を使用しました

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

これを行うためのエレガントな方法については、答えを見てください。

4

2 に答える 2

22

-deleteオプションでのやり方はこちら!

find コマンド オプションを使用します-delete

find . -name '*.pyc' -delete

もちろん、必要-deleteなものを削除するかどうかを確認するために、 を使用せずに予行演習を試してください!!! それらのコンピューターは非常に高速に実行されます。;-)

于 2012-06-06T22:32:41.913 に答える
7

イニシアチブを取り、問題の解決策を自分で見つけたことに対して+1。いくつかのかなりマイナーなメモ:

-type fファイルを削除したい場合は、フラグを使用する習慣を身につけることをお勧めします。findこれは、実際にファイルであるファイル (つまり、ディレクトリやリンクではない) に限定されます。そうしないと、意図せずにディレクトリを削除してしまう可能性があります。(とは言っても、「something.pyc」という名前のディレクトリがない限り、サンプル コマンドでは問題にはなりません。一般的には良い習慣です。)

また、お知らせしておきますが、この-exec rm..バージョンを使用する場合は、代わりに次のようにすると実行速度が速くなります。

find . -type f -name '*.pyc' -exec rm {} \+

このバージョンでは、 の 1 回の呼び出しに可能な限り多くの引数を追加するため、rmへの呼び出しの総数が減少しrmます。のデフォルトの動作とほとんど同じように機能しますxargs

于 2012-06-06T23:07:57.140 に答える