XARGS(1)

명칭
xargs - 표준 입력으로부터 인수를 읽어, 명령을 실행한다

서식
xargs [-0pt] [-E eofstr] [ -I replstr [-R replacements]] [-J replstr] [-L number] [ -n number [-x]] [-s size] [utility [argument ...]]

해설
xargs 명령은 공백, 탭, 개행, EOF (end-of-file)로 단락지어진 인수를 표준 입력 (으)로부터 읽어들여, 지정했다 utility 에 그 인수를 붙여 실행합니다.

명령행으로 지정된 유틸리티명과 인수는, utility 명령에게 건네집니다. 유틸리티에 계속되는 인수는 표준 입력으로부터 얻을 수 있습니다. utility (은)는 표준 입력을 끝까지 읽을 때까지 반복 실행됩니다.

공백, 탭, 개행은 싱글 쿼츠 (`` ' '') (이)나 더블 쿼츠 (``"'')나 backslash (``\'') (을)를 사용해 묻을 수가 있습니다. 싱글 쿼츠는 다음의 싱글 쿼츠에 매치 할 때까지, 개행과 싱글 쿼츠를 제외한 모든 캐릭터를 이스케이프 합니다. 더블 쿼츠는 다음의 더블 쿼츠에 매치 할 때까지 개행과 더블 쿼츠를 제외한 모든 캐릭터를 이스케이프 합니다. 개행을 포함한 모든 캐릭터는 backslash로 이스케이프 됩니다.

옵션은 이하의 것이 있습니다:

-0  공백과 개행은 아니고 눌 캐릭터 (``\0'')를 단락으로 할 것 같게 xargs 에 지시합니다. find(1) 의 -print0 (와)과 함께 이용합니다.

-E eofstr
    eofstr (을)를 논리적인 EOF 마커로서 사용합니다.

-I replstr
    utility 에의 인수안에 replstr 하지만 1 회 이상 최대 replacements 회까지 (혹은, -R 플래그가 지정되어 있지 않은 경우는 5 회까지) 출현했을 때, 출현한 부분을 입력행의 내용 전체에 치환하면서 utility (을)를 각 입력행에 대해서 실행합니다. 치환이 끝난 뒤의 결과의 인수는, 255바이트를 넘는 것은 용서되지 않습니다. 이 제한은, 작성된다 utility 에의 인수에 replstr (을)를 포함한 인수를 255 바이트가 될 때까지 할 수 있는 한 연결하는 것으로 실장되고 있습니다. 이 255 바이트의 제한은, replstr (을)를 포함하지 않는다 utility 에의 인수에는 적용되지 않고, 게다가 utility 그것은 치환의 대상으로는 되지 않습니다. 이 옵션은, -x 옵션을 암묵중에 실행합니다.

-J replstr
    본옵션이 지정되면(자), xargs (은)는, 표준 입력으로부터 읽어들인 데이터를 다른 모든 인수의 뒤에 추가하는 대신에, 이 데이터를 최초의 replstr (와)과 옮겨놓습니다. 본옵션은, 입력으로부터 읽어들이는 인수의 수 (-n) (이)나, xargs 하지만 생성하는 명령의 크기 (-s) 에는 영향을 주지 않습니다. 본옵션은, 인수가 놓여지는 장소를 실행되는 명령안으로 이동할 뿐입니다. replstr (은)는, xargs 에 있어 명확한 인수 argument 일 필요가 있습니다. 이것은, 예를 들면 인용된 캐릭터 라인안에 있는 경우에는, 해석되지 않습니다. 게다가 최초의 replstr 만이 옮겨놓을 수 있습니다. 예를 들면, 다음의 명령은, 현재의 디렉토리에 있는 대문자로 개시하는 파일과 디렉토리를, destdir 에 카피합니다:

        /bin/ls -1d [A-Z]* | xargs -J % cp -rp % destdir

-L number
    number 행 읽어들일 때마다 utility (을)를 실행합니다. EOF 에 도달했을 때 number 행보다 적은 행수 밖에 읽어들이지 않은 경우는, 다 읽어들여 있는 행을 사용해 utility (을)를 불러냅니다.

-n number
    각 utility 실행시에 표준 입력으로부터 줍는 인수의 최대수를 설정합니다. 만약 계산된 바이트수가, 지정되었다 size (을)를 넘었을 경우 ( -s 옵션 참조)나 utility 의 마지막 실행시에 남은 인수가 number 개이하의 경우, utility (은)는, 표준 입력으로부터 읽어들인 인수 중 number 보다 소수 밖에 사용하지 않습니다. number 의 현재의 기본값은 5000 입니다.

-p  실행될 예정의 명령을 표시해, 실행해야할 것인가 어떤가를 유저에게 묻습니다. 긍정의 응답, 즉 POSIX 로케일에서는 ‘y’ (을)를 돌려주면(자), 표시한 명령이 실행되어 그 이외의 응답을 돌려주면(자) 명령은 스킵 됩니다. 프로세스가 단말에 접속되어 있지 않은 경우는, 어느 명령도 실행된다 (일)것은 없습니다.

-R replacements
    -I 옵션으로 치환을 실시하는 인수의 최대수를 지정합니다.

-s size
    utility 에 건네주는 명령행의 최대 바이트수를 세트 합니다. utility 이름의 길이, utility 에게 건네지는 인수의 길이의 화 (종단의 NULL 도 포함한다), 그리고 현재의 환경이 이 값이하가 됩니다. size 의 현재의 기본값은 ARG_MAX - 4096 입니다.

-t  실행되는 명령을 그 실행의 직전에 표준 에러 출력에 에코 합니다.

-x  인수의 개수가 지정한 (혹은 디폴트의) 명령행장과 맞지 않는 경우, xargs (을)를 강제 종료합니다.

만약 utility 하지만 지정되어 있지 않으면, echo(1) 하지만 사용됩니다.

utility 하지만 표준 입력을 읽는 프로그램의 경우는 예기치 못한 동작을 할지도 모릅니다.

명령행을 모아지지 않았을 때나 utility (을)를 기동할 수 없었을 때, 유틸리티가 시그널로 종료했을 때, 만약 구 (은)는 유틸리티가 반환값 255 로 종료했을 때는, xargs (은)는 (그 이상의 읽기는 하지 않고 ) 즉시 종료합니다.

진단
xargs (은)는, 굳이 에러가 일어나지 않으면, 반환값 0 으로 종료합니다. utility 하지만 발견되지 않았던 경우는, 반환값 127 으로 종료합니다. utility 하지만 실행할 수 없었던 경우는 반환값 126 으로 종료합니다. 그 외의 에러에서는 반환값 1 으로 종료합니다.

관련 항목
echo(1), find(1), exechvp(3)

표준
xargs 유틸리티는 p1003.2 호환입니다. -J 옵션 및 -R 옵션은 비표준의 FreeBSD 확장이며, 다른 operating system에서는 이용할 수 없을지도 모릅니다.

역사
xargs 명령은 PWB UNIX 로 등장했습니다.

버그
인수의 수나 환경의 크기가 증가하는 것 같은 다른 명령의 기동을 utility 하지만 시도하는 경우, execvp(3) 하지만 E2BIG 그리고 실패하는 위험이 있습니다.