catを使用してファイルをマージすることはできません。 [重複]

catを使用してファイルをマージすることはできません。 [重複]

私は多くのファイル(10,000以上)を開き、cat次のように1つにマージしてみました。

cat * > ~/Desktop/lol.xml

ただし、次のエラーが返されました。

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

これは、コンテンツが長すぎるか大きいことを意味します。これにはどのような方法を使用できますか?

答え1

find . -maxdepth 1 -type f --exec cat {} + > ~/Desktop/lol.xml

これはcat可能な引数の最大数を使用して呼び出されます。残りのパラメータについては、cat新しいインスタンスが起動されます。

答え2

コマンドが使用できる引数の数には制限があります。解決策は以下を使用することですfor loop

for file in *; do cat "$file"; done

最大値は次の方法で表示できます。

$ getconf ARG_MAX 

関連情報