| HOME / 정보공유 / AIX 명령어 모음

xargs
xargs xargs 명령 목적 매개변수 리스트를 구성하고 명령을 수행합니다. 구문
xargs [ -p ] [ -t ] [ -e [ EOFString ] ] [ -E EOFString ] [ -i [ ReplaceString ] ] [ -I ReplaceString ] [ -l [ Number ] ] [ -L Number ] [ -n Number [ -x ] ] [ -s Size ] [ Command [ Argument ... ] ]
주: 매개변수와 소문자 플래그 사이에 공백을 두지 마십시오.
설명
생성된 명령행 길이는 Command 및 문자열 각각의 널(null) 바이트 터미네이터를 포함하여 문자열로 처리되는 Argument 각각의 크기 합(바이트)입니다. xargs 명령은 명령행 길이를 제한합니다. 구성된 명령행 수행시, 결합된 Argument와 환경 리스트는 ARG_MAX 바이트를 초과할 수 없습니다. 이러한 제한조건으로 인해 -n 또는 -s 플래그를 지정하지 않을 경우, 디폴트 명령행 길이는 최소한 LINE_MAX에 지정된 값입니다.
플래그
-e[EOFString] 폐기된 플래그. -E 플래그를 사용하십시오.
EOFString 매개변수를 논리적 EOF 문자열로 사용합니다. -e 또는 -E 플래그를 지정하지 않을 경우 논리적 EOF 문자열을 밑줄(_)로 가정합니다. EOFString 매개변수를 지정하지 않으면 논리적 EOF 문자열 기능은 작동되지 않으며 밑줄이 그어집니다. EOF 또는 지정된 문자열에 도달할 때까지 xargs 명령은 표준 입력으로부터 읽습니다.
-E EOFString 디폴트 밑줄(_ )을 대체할 논리적 EOF 문자열을 지정합니다. EOF 또는 지정된 문자열에 도달할 때까지 xargs 명령은 표준 입력을 읽습니다.
-i[ReplaceString] 폐기된 플래그. -I(대문자 i) 플래그를 사용하십시오.
ReplaceString 매개변수를 지정하지 않을 경우 문자열 "{}"이 사용됩니다.
주: -I(대문자 i)와 -i 플래그는 함께 사용할 수 없으므로 지정된 마지막 플래그만 적용됩니다.
-I ReplaceString (대문자 i). 표준 입력의 각 행을 Command 매개변수에 대한 인수로 삽입하고 ReplaceString의 각 발생마다 Command 매개변수에 삽입합니다. ReplaceStrings는 6개 이상의 인수에 사용할 수 없습니다. 각각의 표준 입력 행의 처음 부분에 있는 공백 문자는 무시됩니다. 각 Argument에는 하나 이상의 ReplaceStrings가 포함될 수 있으나 255 바이트보다 클 수 없습니다. -I 플래그는 -x 플래그도 작동시킵니다.
주: -I(대문자 i)와 -i 플래그는 함께 사용할 수 없으므로 지정된 마지막 플래그만 적용됩니다.
-l[Number] (소문자 L). 폐기된 플래그. -L 플래그를 사용하십시오.
Number 매개변수를 지정하지 않는 경우에는 수 값으로 1이 사용됩니다. -l 플래그는 -x 플래그도 작동시킵니다.
주: -L, -I(소문자 L) 및 -n 플래그는 상호 배타적이므로 지정된 최종 플래그만 영향을 줍니다.
-L Number 표준 입력에서 읽은 비어 있지 않은 지정된 매개변수 행 수를 사용하여 Command 매개변수를 수행합니다. 지정된 Number보다 더 적은 상태로 있는 경우, Command 매개변수의 최종 호출은 더 적은 매개변수 행을 갖습니다. 행의 최종 문자가 공간이나 탭이 아닌 경우, 행은 첫 번째 개행 문자로 끝납니다. 추적 공간은 다음의 비공백 행에 계속 나타납니다.
주: -L, -I(소문자 L) 및 -n 플래그는 함께 사용할 수 없으므로 지정된 최종 플래그에만 적용됩니다.
-n Number Number 매개변수로 지정된 최대값까지 가능한한 많은 표준 입력 인수를 사용하여 Command 매개변수를 수행합니다. xargs 명령은 다음과 같은 경우 더 적은 인수를 사용합니다.
누적된 명령행 길이가 -s Size 플래그로 지정된 바이트를 초과하는 경우.
마지막 반복이 Number개(0은 아님)의 나머지 인수보다는 작습니다.
주: -L, -I(소문자 L) 및 -n 플래그는 함께 사용할 수 없으므로 지정된 최종 플래그에만 적용됩니다.
-p Command 매개변수를 수행할 것인지를 묻습니다. 구성된 명령행과 ?...(물음표, 말줄임표) 프롬프트를 표시합니다. Command 매개변수를 수행하려면, 로케일 고유의 긍정 응답을 입력하십시오. 다른 응답은 xargs 명령이 매개변수의 특정 해당 호출을 건너 뛰도록 합니다. 각각의 호출에 대해 묻습니다. 또한 -p 플래그가 -t 플래그를 작동시킵니다.
-sSize 구성된 Command 행의 최대 총 크기를 설정합니다. Size 매개변수는 양의 정수이어야 합니다. 다음과 같은 경우 더 적은 인수가 사용됩니다.
인수의 총 수는 -n 플래그에 의해 지정된 수를 초과합니다.
행의 총 수는 -L 또는 -I(소문자 L) 플래그에 의해 지정된 수를 초과합니다.
Size 매개변수에 의해 지정된 바이트 수가 누적되기 전에 파일 끝에 도달합니다.
-t 추적 모드를 사용 가능하게 하고 구성된 Command 행을 수행 전에 표준 오류로 반향(echo)합니다.
-x Command 행이 -s Size 플래그로 지정된 바이트 수보다 큰 경우 xargs 명령 수행을 정지합니다. 이 -x 플래그는 -I(대문자 i) 또는 -l(소문자 L) 플래그를 지정할 경우 온으로 설정됩니다. -i, -I(대문자 i), -l(소문자 L), -L 또는 -n 플래그를 지정하지 않을 경우, Command 행의 총 길이는 -s Size 플래그로 지정된 한계 이내여야 합니다.
종료 상태
이 명령은 다음과 같은 종료 값으로 복귀됩니다.
0 Command 매개변수의 모든 호출이 종료 상태 0을 리턴했습니다.
1-125 지정된 요구조건에 맞는 명령행을 모을 수 없었으며 하나 이상의 Command 매개변수 호출이 0이 아닌 종료 상태를 리턴하거나 몇몇 다른 오류가 발생했습니다.
126 Command을 찾을 수 있지만 호출할 수는 없습니다.
127 Command을 찾을 수 없습니다.
지정된 요구조건을 충족시키는 명령행을 어셈블할 수 없고 명령을 호출할 수 없는 경우, 명령 호출이 신호로 종료되거나 종료 상태 255와 함께 종료됩니다. xargs 명령은 진단 메세지를 기록하며, 나머지 입력을 처리하지 않고 종료합니다.
예제
그 이름이 한 파일에 나열된 파일들에 명령을 사용하려면 다음을 입력하십시오.
xargs lint -a
cfiles 파일이 다음과 같은 텍스트를 포함하는 경우,
main.c readit.c
gettoken.c
putobj.c
xargs 명령은 다음 명령을 구성하고 수행합니다.
lint -a main.c readit.c gettoken.c putobj.c
cfiles 파일에 단일 쉘 명령행에 맞지 않는 더 많은 파일 이름이 포함된 경우(최대 LINE_MAX), xargs 명령은 적합한 파일 이름으로 lint 명령을 수행합니다. 그런 다음, 남아 있는 파일 이름을 사용하여 다른 lint 명령을 구성하고 수행합니다. cfiles 파일에 나열된 이름에 따라, 명령은 다음과 같이 나타날 수 있습니다.
lint -a main.c readit.c gettoken.c . . .
lint -a getisx.c getprp.c getpid.c . . .
lint -a fltadd.c fltmult.c fltdiv.c . . .
이 명령 순서는 모든 파일 이름을 사용하여 한 번 lint 명령을 수행할 때와 같지 않습니다. lint 명령은 파일들간의 상호 참조를 검사합니다. 그러나 이 예에서는 main.c 및 fltadd.c 파일 사이나 별도의 명령행에 나열된 임의의 두 파일 사이에서는 검사할 수 없습니다.
이러한 이유로 사용자는 모든 파일 이름이 한 행에 적합한 경우에만 명령을 수행하기를 원할 것입니다. 이를 xargs 명령으로 지정하려면 다음을 입력하여 -x 플래그를 사용하십시오.
xargs -x lint -a cfiles 파일의 모든 파일 이름이 하나의 명령행에 들어가지 않을 경우 xargs 명령은 오류 메세지를 표시합니다.
특정 갯수의 파일 이름을 포함하는 명령을 작성하려면 다음을 입력하십시오.
xargs -t -n 2 diff < starting chap1 concepts chap2 writing
chap3
EOF
이 명령 순서는 각각이 두 개의 파일 이름을 포함하는(-n 2) diff 명령을 작성하고 수행합니다.
diff starting chap1
diff concepts chap2
diff writing chap3
-t 플래그를 xargs 명령에 사용하면 수행하기 전에 각 명령이 표시되므로 발생하는 상황을 알 수 있습니다. <
파일 이름을 명령행의 중간에 삽입하려면 다음을 입력하십시오.
ls | xargs -t -I {} mv {} {}.old
이 명령은 .old를 각 이름의 끝에 추가하여 현재 디렉토리 내 모든 파일의 이름을 바꿉니다. -I 플래그는 xargs 명령에게 {}(중괄호)가 나타나는 곳에 ls 디렉토리의 각 행을 삽입하도록 알려줍니다. 현재 디렉토리에 파일 chap1, chap2 및 chap3이 있는 경우 다음 명령을 작성합니다.
mv chap1 chap1.old
mv chap2 chap2.old
mv chap3 chap3.old
개별적으로 선택하는 파일에 대해 명령을 수행하려면 다음을 입력하십시오.
ls | xargs -p -n 1 ar r lib.a
이 명령 순서를 사용하여 lib.a library에 추가할 파일을 선택할 수 있습니다. -p 플래그는 xargs 명령에게 그 명령이 구성하는 각각의 ar 명령을 표시하도록 하며, 사용자가 명령의 수행을 원하는지를 묻도록 합니다. 명령을 수행하려면 y를 입력하십시오. 명령을 수행하지 않으려면 아무 키나 누르십시오.
다음과 유사한 내용이 표시됩니다.
ar r lib.a chap1 ?...
ar r lib.a chap2 ?...
ar r lib.a chap3 ?...
특정 수의 인수를 포함하는 명령을 작성하고 이러한 인수를 명령행의 중간에 삽입하려면 다음을 입력하십시오.
ls | xargs -n6 | xargs -I{} echo {} - some files in the directory
현재 디렉토리가 chap1 - chap10의 파일을 포함하는 경우, 구성된 출력은 다음과 같습니다.
chap1 chap2 chap3 chap4 chap5 chap6 - some files in the directory
chap7 chap8 chap9 chap10 - some file in the directory
파일
/usr/bin/xargs xargs 명령이 들어 있습니다.
관련 정보
ar 명령, diff 명령, echo 명령, ksh 명령, lint 명령, ls 명령, mv 명령.