このコマンドを使用するとls repo/* | xargs -I {} cp {} backup_repo/
エラーが発生します-bash: /usr/bin/ls: Argument list too long
。私はこれが起こる理由は、bashが実際に一致する各ファイルにアスタリスクを拡張して非常に長いコマンドラインを生成するためであることを知っています。このエラーをどのように解決できますか?
ベストアンサー1
xargs --show-limits </dev/null
現在の制限を表示するために使用されます。
より良い方法:
find repo -maxdepth 1 -type f -name '*' -print0 | \
xargs -0 --no-run-if-empty \
cp --target-directory=./backup_repro/
バックアップしたいファイルと同じディレクトリにバックアップディレクトリを置くことはお勧めできません。以下を含むバックアップを含むバックアップが作成され、バックアップサイズは無限大に近づくことがあります。
読むman find xargs cp
。