나는 이것의 차이점이 무엇인지 알고 싶다
ls | xargs rm
ls | xargs -i{} rm {}
둘 다 나를 위해 일하고있다
나는 이것의 차이점이 무엇인지 알고 싶다
ls | xargs rm
ls | xargs -i{} rm {}
둘 다 나를 위해 일하고있다
답변:
xargs rm
rm
공백으로 떠난 매개 변수로 모든 인수를 호출 합니다.
xargs -i{} rm {}
rm {}
각 인수마다 호출 {}
되며 현재 인수로 대체됩니다.
당신은 2 인자가있는 경우 a.txt
와 b.txt
, xargs rm
이를 호출합니다
rm a.txt b.txt
하지만 xargs -i{} rm {}
전화
rm a.txt
rm b.txt
-i
옵션 은 옵션을 의미 하기 때문에 -L 1
명령 rm
은 1
매번 줄만 사용합니다. 그리고 여기 각 줄에는 하나의 인수 만 있습니다.
이에 대한 더 많은 정보를 얻으려면 이 Ideone 링크 를 확인하십시오 .
rm
문제가되지 않습니다
-i 옵션 (--replace와 동일)은 xargs가 방금 수신 한 입력을 저장하는 일종의 자리 표시자를 만듭니다. 두 번째 명령에서 자리 표시자는 "{}"이며 find -exec 옵션처럼 작동합니다. 일단 정의되면 xargs는이 자리 표시자를 전체 입력 줄로 바꿉니다. "{}"이름이 마음에 들지 않으면 직접 정의 할 수 있습니다.
LS | xargs -iPLACEHOLDER 에코 PLACEHOLDER
귀하의 경우 두 명령 모두 동일한 결과를 생성합니다. 두 번째 양식에서는 -i 옵션을 사용하여 기본 동작을 명시 적으로 지정합니다.