0

次のコマンドを cron で実行しています。

sudo find "$VOLUME1" "$VOLUME2" "$VOLUME3" "$VOLUME4" -type f -exec ls -lT {} + > $FILE

このコマンドは約 100 万ファイル以上を実行しているため、完了するまでに数時間かかります。

コマンドを実行すると、実行中のtop14 (!!) の差分インスタンスが表示されlsます。これはスクリプトのバグですか、それとも非常に多くの ls コマンドが実行されている原因は何ですか?

4

1 に答える 1

2

コマンド ラインの長さが制限されているため、100 万を超えるパラメーターを使用してfind1 つのインスタンスを起動することはできません。ls代わりにls、それぞれ数千のパラメーターを持つ複数のプロセスを生成します。

コマンド ラインの最大長は、私のマシンでは 2097152 のようですが、おそらく 1000000/14 ファイル名のサイズでしょうか?

$ getconf ARG_MAX
2097152
于 2013-02-03T23:54:07.423 に答える