나는 그 사용법을 이해하려고 노력하고 xargs
다음과 같은 실험을 수행했습니다.
ls | xargs | touch
현재 디렉터리의 파일 날짜와 디렉터리를 새로 고치고 싶습니다.
조금 있긴 하지만멍청한, 더 간단한 형식을 사용하여 동일한 효과를 얻을 수 있기 때문입니다.
xargs
그것을 읽고 STDIN
다른 명령의 매개변수로 변환하는 것 같습니다 ( /bin/echo
기본적으로 명령이 지정되지 않은 경우). 제가 뭔가 잘못 이해한 걸까요?
실패했는데 그 이유를 알고 싶습니다.
답변1
다음과 같아야 합니다.
ls | xargs touch
이 명령은 stdin에서 읽은 여러 문자열을 사용하여 xargs
명령을 실행합니다. touch
귀하의 경우 stdin for는 xargs
파이프의 출력 끝입니다 ls
.
명령 방법:
ls | xargs | touch
xargs
표준 입력에서 문자열(파일 이름)을 읽는 명령은 없습니다. 이 경우에는 xargs
각 파일 이름을 인쇄하고 touch
표준 입력으로 파일 이름 목록을 얻으세요. 그러나 touch
표준 입력에서는 읽지 않으며 인수를 제공하지 않았으므로 다음과 같은 오류 메시지가 인쇄됩니다.
touch: missing file operand
Try `touch --help' for more information.
(귀하의 질문에 이를 언급해야 합니다).