![cat을 사용하여 파일을 병합할 수 없습니다. [중복]](https://linux55.com/image/59278/cat%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B3%91%ED%95%A9%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EC%A4%91%EB%B3%B5%5D.png)
나는 많은 파일(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