다음을 사용하여 파이프된 tar 파일의 압축을 풀려고 할 때 다음 오류가 발생합니다.
$ git archive --format=tar 0af62b1 | tar -xf -C /the/path/here/
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
첫 번째 부분은 git archive --format=tar 0af62b1
tar 파일을 출력하여 화면에 인쇄합니다. 이 출력은 매개변수를 사용하여 파일로 캡처할 수 있습니다 --output file_name
.
두 번째 부분에서는 파일 내용을 지정된 경로로 추출하려고 합니다. 개별적으로 실행하면 둘 다 완벽하게 실행 git archive 0af62b1 --output file_name
되고 tar -xf file_name -C /the/path/here/
.
이 경우 왜 배관이 불가능합니까? 명령이 파이프 입력을 허용하는지 어떻게 알 수 있나요?
답변1
git
귀하의 입력을 stdin 동의어로 연결해 보겠습니다 tar -xf - -C /the/path/here/
. -
또는 더 간단합니다 tar -xC /the/path/here
( -
기본 파일임).
답변2
문제는 오류 출력에 표시됩니다.
$ git 아카이브 --format=tar 0af62b1 |-xf-C/the/path/here/
타르:-C: 열 수 없음:해당 파일 또는 디렉터리가 없습니다.
tar: 복구할 수 없는 오류: 즉시 종료하세요.
tar에게 -C라는 파일을 사용하라고 지시했는데, 이는 존재하지 않으므로 실패합니다.
작업 상황에서는 file_name이라는 파일이 제공되며 파일이 존재하고 모든 것이 잘 작동합니다.
가능한 수정: 명령에서 "-f -C"를 제거합니다.