Por que a estrutura do diretório de tarball desaparece quando eu uso o Arquivo de Perl :: TAR?

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Estou usando um script Perl para modificar alguns arquivos dentro de um .tar e a estrutura do diretório dentro do .tar resultante desaparece. Eliminando cada vez mais código, cheguei até tudo o que é necessário para reproduzir isso

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

Ambos os arquivos .TAR têm todos os arquivos, no entanto, a indicação de quais diretórios os arquivos e subdiretórios foram localizados são perdidos.

Eu olhei através dos documentos e SRC para Arquivo :: alcatrão Mas eu realmente não entendo o que está acontecendo.

Estou usando o Perl 5.10.0 no Win32, TAR 1.12 e Archive :: TAR 1.54. Examinei os arquivos .tar em um editor e o data.tar contém dir/ e dir/ file.txt, mas no modificado_data.tar eles aparecem como dir e file.txt, então meu alcalão original parece bom.

Alguém de vocês que já viu isso antes ou tem alguma idéia?

Foi útil?

Solução

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

Não pode replicar usando data.tar criado com:

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

Como @~ notas de quack, o Docs estado:

Observe que o GNU TAR mais cedo do que a versão 1.14 não lida bem com o prefixo do cabeçalho POSIX. Se você usar essa versão, considere definir o $Archive::Tar::DO_NOT_USE_PREFIX variável para true.

Outras dicas

Eu tentei o seu script, mas não pude reproduzir o problema (no FreeBSD usando o Perl 5.10).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top