2011-04-24 1 views
9

xargs가 모든 인수를 한꺼번에 통과하지 못하는 것 같습니다. xargs executes the command (default is /bin/echo) one or more times의 설명에 따르면 xargs가 전달 된 인수를 그룹으로 잘라서 명령 그룹에 전달합니다. 그룹. 이것이 맞다면 누구나이 그룹 크기가 어떻게 결정되는지 알고있을 것입니다. 감사합니다larg xargs : 전달 된 인수의 최대 크기?

답변

19

--show-limits 인수를 사용하십시오. 시스템의 기존 한계를 나열합니다.

$ xargs --show-limits 
Your environment variables take up 4108 bytes 
POSIX upper limit on argument length (this system): 2090996 
POSIX smallest allowable upper limit on argument length (all systems): 4096 
Maximum length of command we could actually use: 2086888 
Size of command buffer we are actually using: 131072 

그룹 크기는 전달 된 각 인수의 길이와 위에 나열된 제한에 따라 다릅니다. 참조를 위해 xargs 사람 페이지에서

:

POSIX 표준은 구현이 실행 함수 인수의 크기에 제한이 있습니다. 이 제한은 환경 크기를 포함하여 4096 바이트까지 낮을 수 있습니다. 스크립트를 이식 가능하게하려면 더 큰 가치에 의존해서는 안됩니다. 그러나 실제 제한이 그다지 구현되지 않았다는 것을 알고 있습니다. --show-limits 옵션을 사용하면 현재 시스템의 실제 한계를 발견 할 수 있습니다.

+0

감사합니다. – user685275

+1

역설적으로'--show-limits' 옵션은 [xargs'에 대한 POSIX 표준의 일부가 아닙니다] (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/xargs.html)이므로 그것에 의지하지 마십시오. (나는 그것이 GNU 확장이라고 생각한다.) –