답변:
모든 tar.gz
파일에서 발생하는지 아니면 이 파일에서만 발생하는지에 따라 다릅니다 . 이 특정 파일이 손상되었을 수 있으므로 제대로 열리지 않습니다. tar를 사용하여 추출 z
하는 경우 아카이브를 압축 할 때 필요 하므로 옵션 을 사용해야합니다 tar xzvf <file.tar.gz>
. 또는 추출하여 시도해 볼 가치가 있습니다.gunzip <file.tar.gz>
파일이 손상되었는지 확인하려면 gzip -t <file.tar.gz>
; 이 명령은 파일에 오류가 있는지 확인하고 발견 된 경우 터미널에 표시됩니다. 파일이 손상되었는지 여부를 알려줍니다.
파일이 사운드이고 오류가 다시 발생하면 zero blocks
GNU tar가 예상하는 것처럼 파일 끝에 파일 쌍이없는 경우 발생하는 tar의 알려진 문제 일 수 있습니다 . 이에 대한 해결책은 -i
을 무시하는 옵션을 추가하는 것 zero blocks
입니다. 그래서 사용 tar ixzvf <file.tar.gz>
문제가 설명되어 있습니다 여기에 자세히.
stderr과 stdout을 분리하지 않는 채널 (android adb 터미널 세션)을 통해 stdout 과 stderr을 모두 파이프로 연결했기 때문에 동일한 문제가 발생했습니다 .
그렇게하면 일부 오류 메시지가 스트림에 생겼습니다. 이것은 잘못된 명령이었습니다.
잘못된 명령, adb 쉘은 stderr과 stdout을 로컬로 병합합니다 => 쓰레기! :
adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar
고정 명령 :
adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar
stderr을 / dev / null로 리디렉션하는 것을 잊어 버린 경우 ssh를 통한이 빠른 tar 스트리밍과 같이 SSH를 통해 유사한 명령을 수행하는 경우에도 마찬가지입니다.
ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz
RequestTTY yes
하여 ssh_config를에. 명시 적으로 해제 할 수 있습니다-T Disable pseudo-tty allocation.
나를 위해, 오류는tar: Skipping to next header
내가 함께 시도 할 때 혼자 제로 블록이 발생, 원래--posix
..