tar: 짧은 읽기

tar: 짧은 읽기

tar.

나는 이렇게 한다:

tar xvf VM_DECOMPTES.tar

얼마 후 다음과 같은 오류가 발생합니다.

tar: short read

여기서 무슨 문제가 있습니까?

tar: 인식할 수 없는 옵션 '--version' BusyBox v1.9.1-VMware-visor-klnext-2965(2010-04-19 12:53:48 PDT) 다중 호출 바이너리

답변1

tar 파일이 손상되었거나 잘린 것 같습니다.

이것tar 파일 헤더size파일 길이를 포함하는 필드를 포함합니다 . 실제 파일이 헤더에 지정된 것보다 짧은 경우 tar는 파일의 파일 시스템 끝 부분을 읽으려고 시도하고 예상보다 짧은 읽기를 반환하여 표시되는 메시지를 생성합니다.

1 이 기능은 tar가 주로 테이프 보관에 사용되던 시절로 거슬러 올라가며, 테이프에서 EOF 표시가 나타날 때까지 읽어서 "파일"의 길이만 알 수 있었습니다. 이는 이전 버전과의 호환성을 위해 유지되며 헤더 및 파일 일관성에 대한 좋은(다소 저렴하더라도) 검사를 제공합니다.

답변2

이 메시지는 일반적으로 tar 아카이브가 불완전한 경우 나타납니다. 실행하면 tar tvf ./VM_DECOMPTEST.tartar 파일에 불일치가 있는지 확인합니다.

답변3

이는 실행 중인 tar 버전 때문일 수 있으며, 특히 GNU tar를 사용하여 문제를 재현할 수 없는 경우 더욱 그렇습니다.

다음 명령을 실행하여 플랫폼에 맞는 새로운 버전의 busybox를 구축할 수 있습니다.

$ wget https://busybox.net/downloads/busybox-1.31.0.tar.bz2
$ tar xjf busybox-1.31.0.tar.bz2
$ cd busybox-1.31.0
$ LDFLAGS=--static make -j16  # if applicable: CROSS_COMPILE=...-linux-gnu-

특히, busybox v1.22.1(또는 다른 버전)로 압축을 풀 때 어떤 종류의 버그가 있는 것 같은데, 이는 v1.31.0에서 수정되었습니다.

관련 정보