tar 명령에 잘못된 인수가 전달되어 file1을 사용할 수 없게 되었습니다!

tar 명령에 잘못된 인수가 전달되어 file1을 사용할 수 없게 되었습니다!

tar명령에 잘못된 매개변수가 전달되면 file1명령을 사용할 수 없습니다! 올바른 파일 명령 tar은 다음과 같습니다:

$ tar cvf total.tar file1 file2 

하지만 다음 형식을 사용한 후에는 복구할 수 없습니다.file1

$ tar cvf file1 file2 total.tar
file2
tar: total.tar: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
$ ls -ltr
total 16
-rw-r----- 1      3 Apr 26 11:55 file2
-rw-r----- 1  10240 Apr 26 11:57 file1

$ file file1
file1: POSIX tar archive (GNU)


$ tar zxvf fil1
tar (child): fil1: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

답변1

tar파일을 보관 file2하고 total.tar이름이 지정된 아카이브에 넣으라고 요청했는데 file1그렇게 하려고 했습니다. 불행하게도 이는 file1덮어쓰기되었음을 의미하며 이제 얻을 수 있는 것은 다음과 같습니다 file2.

tar tvf file1

z( 아카이브를 생성할 때 지정하지 않았으므로 여기에 추가 하지 마십시오 .)

복구할 수 있는 유일한 방법은 file1백업을 통해서입니다.

답변2

설명: fin은 cvf이 옵션에 대한 바로가기입니다 -f. 이 옵션은 다음 인수로 tar될 대상 파일의 이름을 예상합니다. @AndrewHenle과 @StephenKitt는 매개변수 순서 전환의 결과를 설명했습니다.

답변3

이것은 정의에서 잘 알려진 함정입니다 tar command line syntax.

대신 my를 사용하면 이 문제를 피할 수 있습니다 star.

star다른 오류별 CLI 정의를 사용하는 것은 이름으로 호출할 때 덜 일반적이며, star호출 시 덮어쓰지 않기 때문에 기존 tar 구현보다 여전히 훨씬 안전합니다.plain filestar

관련 정보