Linux 명령줄과 파이프를 사용하여 테스트를 시도했지만 echo {1..3} | touch
작동하지 않습니다. 나는 결과를 얻었다 touch $(echo {1..3})
.
첫 번째 예에서처럼 echo에 의해 생성된 목록을 touch로 파이프할 수 없는 이유는 무엇입니까?
답변1
답변을 주신 Steeldriver의 의견에 감사드립니다.
파이프 연산자는 명령이 stdin의 인수를 허용하는 경우에만 작동합니다. 이 경우 touch 또는 rm과 같은 명령은 작동하지 않습니다. 또 다른 해결책은 예제에 표시된 대로 명령 대체를 사용하는 것입니다.
touch $(echo {1..3})
또는 xargs를 사용하여 입력을 표준 입력에서 명령 인수로 변환하면 다음을 수행할 수 있습니다.
echo {1..3} | xargs touch
너무 쉬워요