터미널 명령을 배우기 위한 가이드를 따르고 있는데 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
이름을 바꾸는 것이 아닙니다. 그리고 임시 파일이 없으며 데이터는 파이프를 통해 전달됩니다.