ディレクトリから何百万ものファイルを削除するコマンド

ディレクトリから何百万ものファイルを削除するコマンド

私のディレクトリには、何百万もの小さなファイル(ビッグデータプログラムの出力)が含まれています。このディレクトリを削除する必要がありますが、基準を入力すると、次の結果がrm *表示されます。

zsh: sure you want to delete more than 100 files in data/output [yn]? y
zsh: argument list too long: rm

これらのファイルはすべて、以下のように同じプレフィックスの後に一意の番号を付けます。

data-12343
data-12344
... etc

したがって、正規表現を使用してこれらのファイルを断片的に削除することもできません。この作業を効率的かつ自動的に行う方法に関する提案とヒントをご覧ください。

ありがとうございます。

答え1

xargsコマンドを実行するためにrmrm元の意図したとおりに実行されるまで、最大引数の数を使用するたびに再実行されます*

マニュアルページの言葉によると:

コマンドラインは、システム定義の制限に達するまで作成されます(-nおよび-Lオプションを使用しない限り)。指定されたコマンドは、入力リストのすべてを使用するために必要なだけ呼び出されます。一般的に言えば、コマンドは入力項目よりはるかに少ない回数で呼び出されます。これにより、パフォーマンスが大幅に向上することがよくあります。一部のコマンドは並列に効率的に実行することもできます。 -Pオプションを参照してください。

関連情報