Pourquoi la structure du répertoire tarball disparaissent lors de l'utilisation de Perl Archive :: Tar?

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

  •  20-09-2019
  •  | 
  •  

Question

J'utilise un script Perl pour modifier certains fichiers dans un .tar, et la structure des répertoires à l'intérieur du .tar résultant disparait. L'élimination de plus en plus de code que je suis venu aussi loin que tout ce qui est nécessaire pour reproduire c'est

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

Les deux fichiers .tar-ont tous les fichiers, mais l'indication de quels répertoires les fichiers et les sous-répertoires sont situés dans sont perdus.

Je l'ai regardé à travers les documents et src Archive :: Tar mais je ne comprends vraiment pas ce qui se passe.

J'utilise Perl 5.10.0 sur win32, le goudron et 1,12 Archive :: Tar 1,54. J'ai examiné les fichiers .tar dans un éditeur et le data.tar dir contient / et dir / file.txt, mais dans le modified_data.tar, ils apparaissent comme dir et file.txt donc mon goudron d'origine semble ok.

Quelqu'un d'entre vous qui en ont vu ou avez des idées?

Était-ce utile?

La solution

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

Impossible de répliquer à l'aide data.tar créé avec:

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

@ ~ notes de charlatan, docs état:

  

Notez que GNU tar antérieure à la version 1.14 ne traite pas bien avec le préfixe d'en-tête POSIX. Si vous utilisez une telle version, pensez à configurer le $Archive::Tar::DO_NOT_USE_PREFIX variable true.

Autres conseils

J'ai essayé votre script mais n'a pas pu reproduire le problème (sur FreeBSD en utilisant Perl 5.10).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top