Pregunta

PROBLEMA: Me gustaría ser capaz de extraer los archivos tar.gz en un solo paso. Esto hace que mi pregunta casi idéntica a ésta: pregunta stackOverflow para tar-gz .

Mi pregunta es casi lo mismo, pero no es lo mismo, porque me gustaría hacer esto en Windows utilizando la línea de comandos 7zip (o algo similar) dentro de un archivo bat o Ruby / Perl / script en Python.

PREGUNTA: Esta tarea aparentemente simple está demostrando ser más complicada que la primera aparición haría que fuera a ser. ¿Alguien tiene un script que hace esto ya?

¿Fue útil?

Solución

7z e example.tar.gz  && 7z x example.tar

Uso && combinar dos comandos en un solo paso. Usar 7zip portátil (necesitará 7z.exe y 7z.dll solamente)

Otros consejos

vieja pregunta, pero he tenido problemas con él hoy, así que aquí está mi 2c. La herramienta de línea de comandos 7zip "7z.exe" (He instalado v9.22) se puede escribir en la salida estándar y leer de la entrada estándar por lo que se puede hacer sin el archivo tar intermedia mediante el uso de un tubo:

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

Donde:

x     = Extract with full paths command
-so   = write to stdout switch
-si   = read from stdin switch
-aoa  = Overwrite all existing files without prompt.
-ttar = Treat the stdin byte stream as a TAR file
-o    = output directory

Vea el archivo de ayuda (7-zip.chm) en el directorio de instalación para obtener más información sobre los comandos de la línea de comandos e interruptores.

Como señaló por @zespri PowerShell amortiguar la entrada al segundo proceso de 7z por lo que puede consumir una gran cantidad de memoria si su archivo tar es grande. es decir:

& 7z x "somename.tar.gz" -so  | & 7z x -aoa -si -ttar -o"somename"

Una solución de este Así que la respuesta si quiere hacerlo desde PowerShell es pasar a los comandos cmd.exe :

& cmd.exe '/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"'

Utilice la Win32 de alquitrán .

tar -xvfz filename.tar.gz

Has solicitado que el 7-zip o algo similar, yo estoy proporcionando una herramienta alternativa que fue escrito para su caso de uso exacto.

El tartool utilidad es una herramienta gratuita y de código abierto construido utilizando la biblioteca .NET SharpZipLib.

Ejemplo commmand para extraer una .tar.gz / .tgz - archivo,

C:\>TarTool.exe D:\sample.tar.gz ./

exención de responsabilidad:. Soy el autor de esta utilidad

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