tar가 종료되면 "계산할 수 없습니다. 디렉터리에 해당 파일이 없습니다."라는 메시지가 표시됩니다. 이유는 무엇입니까?

tar가 종료되면 "계산할 수 없습니다. 디렉터리에 해당 파일이 없습니다."라는 메시지가 표시됩니다. 이유는 무엇입니까?

다음 명령을 사용하여 tar.gz 파일을 만들려고 합니다.

sudo tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/

그런 다음 파일 생성(폴더에 많은 파일)이 시작되지만 다음 오류가 발생합니다.

tar: dvr_rdk_v1.tar.gz: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

이 오류에 대한 설명이 표시되지 않습니다. 이는 무엇을 의미합니까?

답변1

-vcfz옵션 에서 제거되었습니다. tar옵션에는 하이픈이 필요하지 않습니다.

하이픈이 사용되는 경우 이 옵션에 대한 인수는 -f입니다 z. 따라서 명령은 실제로 dvr_rdk_v1.tar.gz및 를 dvr_rdk라는 아카이브 파일에 아카이브하려고 시도합니다 z. 하이픈이 없으면 명령줄의 다음 인수(예: 아카이브의 파일 이름)가 플래그에 대한 인수가 되도록 옵션의 의미가 변경됩니다 f.

또한 명령을 실행하는 디렉터리에 대한 쓰기 권한을 확인하세요.

답변2

-f옵션은 파일 이름 바로 앞에 나타나야 합니다. 따라서 tar -vczf filename.tar.gz대신 사용하십시오.-vcfz

답변3

이것tar 명령역사적으로 Unix를 따르지 않는 몇 안되는 명령 중 하나실용 문법 가이드.

tar의 표준 페이지는 다음과 같이 말합니다.

f는
시스템 종속 기본값이 아닌 첫 번째 파일 피연산자(또는 b가 지정된 경우 두 번째 피연산자)를 아카이브 이름으로 사용합니다.

문법 가이드에는 다음이 포함됩니다.

지침 5:
옵션 인수가 없는 하나 이상의 옵션과 옵션 인수가 있는 최대 하나의 옵션이 "-" 구분 기호 뒤에 그룹화되면 허용되어야 합니다.

따라서 입력한 명령은 tar -vcfz dvr_rdk_v1.tar.gz dvr_rdk/이전 버전의 tar에서 제대로 작동하지만 유틸리티 구문 지침을 엄격하게 따르도록 작성된 일부 tar 버전은 이를 "used as" z파일 인수 로 구문 분석합니다 -f. 따라서 이식성을 위해 다음을 사용해야 합니다.

tar -cvzf dvr_rdk_v1.tar.gz dvr_rdk/

답변4

미래의 독자들을 위해,이 게시물그게 내 대답이야. 따옴표 바깥에 와일드카드를 유지합니다.tar -zcf archive.tar.gz "file-0"*

관련 정보