Perl의 아카이브 :: tar를 사용할 때 타르볼 디렉토리 구조가 사라지는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1544468

  •  20-09-2019
  •  | 
  •  

문제

PERL 스크립트를 사용하여 .tar 내부의 일부 파일을 수정하고 결과 .TAR 내부의 디렉토리 구조가 사라집니다. 점점 더 많은 코드 제거

my $data_tar = Archive::Tar->new('data.tar');
$data_tar->write('modified_data.tar');

두 .Tar-Files에는 모든 파일이 있지만 파일과 하위 디렉토리가 위치한 디렉토리를 표시하는 것은 손실됩니다.

문서와 SRC를 살펴 보았습니다 아카이브 :: 타르 그러나 나는 무슨 일이 일어나고 있는지 정말로 이해하지 못한다.

Win32, TAR 1.12 및 Archive :: TAR 1.54에서 PERL 5.10.0을 사용하고 있습니다. 편집기에서 .tar-files를 검사하고 data.tar에는 dir/ 및 dir/ file.txt가 포함되어 있지만 modified_data.tar에는 dir 및 file.txt로 표시되므로 원래 타르가 괜찮아 보입니다.

전에 본 적이 있거나 아이디어가있는 사람이 있습니까?

도움이 되었습니까?

해결책

C:\Temp> perl -v

This is perl, v5.10.1 built for MSWin32-x86-multi-thread
(with 2 registered patches, see perl -V for more detail)
C:\Temp> perl -MArchive::Tar -e "print $Archive::Tar::VERSION"
1.52

사용을 복제 할 수 없습니다 data.tar 생성 :

C:\Temp> tar --version
tar (GNU tar) 1.21

@~ quack의 말에 따라 문서 상태:

버전 1.14보다 초기 GNU TAR는 POSIX 헤더 접두사와 잘 어울리지 않습니다. 그러한 버전을 사용하는 경우 설정을 고려하십시오. $Archive::Tar::DO_NOT_USE_PREFIX 변수 true.

다른 팁

스크립트를 시도했지만 문제를 재현 할 수 없었습니다 (Perl 5.10을 사용하여 freebsd에서).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top