パラメータリストが長すぎます。ファイルが5000個しかありません。 [重複]

パラメータリストが長すぎます。ファイルが5000個しかありません。 [重複]

フォルダがあります。5000ファイルを別の場所にコピーしたいです。

これを行うと、cp ../folder* .次のエラーが発生します。

-bash: /bin/cp: Argument list too long

しかし、getconf ARG_MAX報酬があります262144

$ echo ../folder* |wc
1 5015 69144

これは普通ですか?以前は、これらすべてのファイルをコピーできました。

答え1

プログラムを使用してパラメータを繰り返します。

例えばfind .. -type d -iname '*/folder*' -exec cp -a {} . \;

手動ループの繰り返し。例:

for myDir in ../folder* ; do cp -a "$myDir" . ; done

他の方法もたくさんありますが、上記の方法の1つがニーズに適しています。 (forループの例は遅くなる可能性があります)

関連情報