손상된 tar(패킹된 파일보다 작은 결과 폴더)

손상된 tar(패킹된 파일보다 작은 결과 폴더)

SuSe 10.3 Server 버전에서 생성된 tarball에 문제가 있습니다.

.tar 파일의 크기는 6.5GB이지만 Ubuntu 9.10에서 압축을 풀면 결과 폴더의 크기는 1.5GB에 불과합니다.

사용된 명령: tar cvf포장, tar xvf포장 풀기.

아마도 누군가가 이 문제를 어떻게 해결할 수 있는지 알고 있다면 좋을 것입니다.

건배.

답변1

디렉토리에 심볼릭 링크나 하드링크가 있는 경우 tar는 각각을 별도의 파일로 추가할 수 있습니다. 그런 다음 Linux 파일 시스템에서 압축을 풀면 링크가 복원되고 모든 것이 더 적은 공간을 차지하게 됩니다.

Tar는 압축용이 아니라 여러 파일을 포함하는 파일을 생성하기 위한 것입니다. 그렇기 때문에 일반적으로 gzip 또는 bzip을 통해 파이프되는 것을 발견합니다.

답변2

cpio를 사용하면 더 나은 결과를 얻을 수 있으며, 대규모 백업에 훨씬 더 적합하고 기호 링크 및 특수 파일을 올바르게 처리하도록 스크립트를 작성할 수 있습니다.

답변3

작은 파일이 많으면 tar에서 차단 및 디렉터리 오버헤드가 발생할 수 있습니다. 중요한 정보는 소스 디렉터리의 크기입니다. tar는 파일에 블록을 할당하지 않음으로써 파일의 빈 공간을 압축했을 수 있습니다. --apparent-size옵션 을 사용해 보십시오 du.

생성된 파일 목록을 tar -tf추출된 파일과 비교해 볼 수 있습니다. tar -xf추출 시 오류가 발생하는지 확인하려면 로 추출하세요 . tar의 복사본을 다시 만들어 크기가 얼마나 큰지 확인해보세요.

답변4

나는 시도하는 것이 좋습니다팍스. 적어도 CentOS에서는 이렇게 호출됩니다. IIRC에서는 유효하지 않은 tar 멤버를 건너뛰어 손상된 TAR 파일을 처리할 수 있습니다. 그렇지 않으면 다음을 실험해 보는 것이 좋습니다.tar 파일Python 표준 라이브러리의 모듈을 프로그래밍 방식으로 수행합니다. 나는 몇 년 전에 그런 일을 한 적이 있었습니다.

관련 정보