すべてを再帰的に削除したいです.in
。時間がかかり、利用可能なコアが多いので、このプロセスを並列化したいと思います。 ~からこのスレッドxargs
、使用またはmake
並列化できるようですfind
。このfindアプリケーションを並列化できますか?
これは私の現在のシリアルコマンドです。
find . -name "*.in" -type f -delete
ベストアンサー1
これを(デフォルト)-delete
に置き換えてGNU並列にパイピングすると、トリックを実行できます。-print
find . -name '*.in' -type f | parallel rm --
これにより、コアごとに1つのジョブが実行されます。代わりに並列操作を使用してください-j N
。N
削除はおそらくCPU制限よりもI / Oが多いので、これが順次削除より速く実行されるかどうかはわかりませんが、テストしてみるのは興味深いでしょう。
(2つのコマンドがまったく同じではないため、「ほとんど」と言います。たとえば、parallel
入力パスの一部に改行文字が含まれている場合、このバージョンは正しい操作を行いません。)