我尝试打开很多文件(10,000+),cat
然后将它们合并为一个,如下所示:
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