¿Por qué desaparece la estructura de directorios tar cuando uso de Perl Archive :: Tar?
-
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?
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 paratrue
.
Otros consejos
He intentado la secuencia de comandos, pero no podía reproducir el problema (en FreeBSD usando Perl 5.10).