xargs가 명령 줄을 실행하지 않고 생성하는 명령 줄을 표시하도록하려면 어떻게해야합니까?


17

상당수의 Linux 명령에는 dry-run 옵션이있어 명령을 수행하지 않고도 수행 할 작업을 보여줍니다. xargs 매뉴얼 페이지에는 아무것도 보이지 않으며 그것을 모방 할 수있는 확실한 방법이 없습니다.

(내 구체적인 유스 케이스는 긴 파이프 라인 문제를 해결하는 것이지만, 다른 파이프 라인이 있다고 확신합니다)

뭔가 빠졌습니까?


정확히 무엇을하려고합니까?
Rahul

답변:


16

echo명령 앞에을 넣어 실행 하시겠습니까?

$ echo a b c d e | xargs -n2 echo rm
rm a b
rm c d
rm e

5
(이것은 물론 사소한 경우에 작동하는 간단한 솔루션입니다. 매개 변수에 공백이나 제어 문자가 포함되어 있으면 출력이 모호합니다. 수신하는 매개 변수를 명확하게 인쇄하려면 전용 도구가 필요합니다.)
ilkkachu

드라 이런을 시도한다면 echo어떨까요? :)
mbigras

31

-p또는 -t플래그를 활용할 수 있습니다 .

xargs -p또는 xargs --interactive실행할 명령을 인쇄 한 다음 명령을 실행하기 전에 입력 (y / n)을 확인하라는 메시지를 표시합니다.

% cat list
one
two
three

% ls
list

% cat list | xargs -p -I {} touch {}
touch one ?...y
touch two ?...n
touch three ?...y

% ls
list
one
three

xargs -t또는 xargs --verbose각 명령을 인쇄 한 다음 즉시 실행하십시오.

% cat list | xargs -t -I {} touch {}
touch one 
touch two 
touch three 

% ls
list
one
three
two

1
옵션 -p-t옵션 을 모두 사용 하여 탁월한 답변을 얻을 수 있습니다. 훌륭한 예. 감사합니다!
JCotton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.