![이 아카이브 명령을 참조하는 데 사용된 stdin 인스턴스에서 하이픈의 값은 실제로 어떻게 보입니까?](https://linux55.com/image/185602/%EC%9D%B4%20%EC%95%84%EC%B9%B4%EC%9D%B4%EB%B8%8C%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%B0%B8%EC%A1%B0%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EC%82%AC%EC%9A%A9%EB%90%9C%20stdin%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4%EC%97%90%EC%84%9C%20%ED%95%98%EC%9D%B4%ED%94%88%EC%9D%98%20%EA%B0%92%EC%9D%80%20%EC%8B%A4%EC%A0%9C%EB%A1%9C%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%B3%B4%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
터미널 명령을 배우기 위한 가이드를 따르고 있는데 Playground 디렉터리에서 "file-A"라는 이름의 모든 파일을 찾기 위해 다음 명령에서 stdin을 참조하기 위해 하이픈을 사용하는 것을 발견했습니다. 나는 find 명령으로 찾은 파일을 참조하는 사용법을 이해합니다. 물론 tar로 파이프되고 --files-from= 옵션을 사용하여 파일로 읽히도록 설정됩니다. gzip 명령으로 이름을 바꾸기 전에 아카이브의 중간 이름을 정의하는 사용법을 이해할 수 없습니다.
find ./playground -name 'file-A' | tar -cf - --files-from=- | gzip playground.tgz
stdin의 값은 stdin 파일에 정의된 경로 목록이 아닌가요? 그렇다면 이것이 어떻게 허용 가능한 아카이브 이름이 될 수 있습니까?
감사해요
답변1
설명서에서 찾을 수 없습니다 tar
. 그러나 -
도구에서는 이를 stdin 또는 stdout을 참조하는 의사 파일 이름으로 사용하는 경우가 많습니다. tar
둘 다 if를 사용합니다. -f -
출력을 말하고 에서 stdout
파일 --files-from=-
이름 목록을 가져오라고 말합니다 stdin
. in 및 out은 암시적이며 이러한 옵션에는 각각 출력과 입력이 필요합니다.
또한 gzip
이름을 바꾸는 것이 아닙니다. 그리고 임시 파일이 없으며 데이터는 파이프를 통해 전달됩니다.