다음 명령을 사용하여 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"*