¿Por qué desaparece la estructura de directorios tar cuando uso de Perl Archive :: Tar?

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

  •  20-09-2019
  •  | 
  •  

Pregunta

Estoy usando un script en Perl para modificar algunos archivos dentro de un .tar, y la estructura de directorios dentro de la tar resultante desaparece. La eliminación de más y más código que he llegado tan lejos como todo lo que se requiere para reproducir este es

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

Los dos .tar-archivos tienen todos los archivos, sin embargo, la indicación de lo que los directorios y subdirectorios los archivos se encuentran en se pierden.

He mirado a través de los documentos y para Archive :: Tar pero realmente no entiendo lo que está pasando.

Estoy usando Perl 5.10.0 en win32, alquitrán y 1,12 Archive :: Tar 1,54. Examiné los .tar-archivos en un editor y el data.tar contiene dir / dir y / archivo.txt, pero en el modified_data.tar es que aparecen como dir y archivo.txt así que mi alquitrán original parece bien.

Cualquiera de ustedes que han visto esto antes o tiene alguna idea?

¿Fue útil?

Solución

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

No se puede replicar usando data.tar creado con:

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

Como @ ~ notas charlatanes, la docs estado :

  

Tenga en cuenta que GNU tar anterior a la versión 1.14 no lidiar bien con el prefijo de cabecera POSIX. Si utiliza una versión de este tipo, considerar el establecimiento de la $Archive::Tar::DO_NOT_USE_PREFIX variable para true.

Otros consejos

He intentado la secuencia de comandos, pero no podía reproducir el problema (en FreeBSD usando Perl 5.10).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top