¿Cómo puedo extraer múltiples archivos gzip en directorios y subdirectorios?


10

He intentado ambos gzipy gunzipcomandos pero recibo cualquiera

gunzip *.gz 
gzip: invalid option -- 'Y' 

gunzip -S-1800-01-01-000000-g01.h5.gz  
gzip: compressed data not read
 from a terminal. Use -f to force decompression. For help, type: gzip -h

Si pruebo la -fopción, me lleva mucho tiempo trabajar en un solo archivo y el comando no se ejecuta correctamente. ¿Me estoy perdiendo de algo?


1
¿El directorio contiene archivos .gz cuyos nombres comienzan con guiones, como -Y.something.gz? Si es así, es posible que necesite usar la --bandera de Gnu para asegurarse de que se traten como nombres de archivo en lugar de opciones, es decirgunzip -- *.gz
steeldriver el

@steeldriver sí, tengo algunos archivos que comienzan con -
Herman Toothrot el

eso causó al menos uno de los dos problemas.
Herman Toothrot el

Respuestas:


16

Puedes usar el siguiente comando.

Vaya al directorio donde está su .gzarchivo y ejecute el comando:

for f in *.gz ; do gunzip -c "$f" > /home/$USER/"${f%.*}" ; done

Extraerá todos los archivos con el nombre original y lo almacenará en el directorio de inicio del usuario actual ( /home/username). Puedes cambiarlo a otro lugar.

EDITAR:

gunzip *.gz

Este comando también funcionará. Pero, por defecto, reemplaza el archivo original.


¿Has leído lo que escribí en mi pregunta? gunzip * .gz no funciona para mí. Pero el ciclo for funciona, estoy perplejo.
Herman Toothrot

pero está funcionando para mí y para otros también por qué está mostrando `opción no válida - 'Y' ' Creo que tu formato de archivo no está bien o te falta algo en el comando.
pl_rock


4

Opción n. ° 1 : descomprima varios archivos con comillas simples (versión corta)

gunzip '*.gz'

Tenga en cuenta que la *.gzpalabra se coloca entre dos comillas simples, por lo que Shell no la reconocerá como un carácter comodín.

Opción n. ° 2 : descomprima varios archivos usando shell for loop (versión larga)

for g in *.gz; do gunzip $g; done

La fuente

EDITAR:

Acabo de probar:

gunzip -dk *.gz

Y funcionó.

-ddescomprimir y kmantener archivos originales.


¿Has comprobado gunzip ‘*.gz’ este comando? No puedo ejecutar este comando. Está dando error.
pl_rock

use gunzip '*.gz'not gunzip ‘*.gz’ ( ' 'not `` ``)
Bilal

Acabo de copiar pegar su comando y dar gzip: *.gz: No such file or directorynuevo también no funciona. has intentado?
pl_rock

No funciona gunzip '* .gz' gzip: * .gz: No existe tal archivo o directorio
Herman Toothrot

Lo siento, no lo intenté! Estoy en Windows ahora mismo :(
Bilal

0

Usuarios de Linux:

Use el siguiente comando para extraer la cantidad mínima de archivos .gz en el directorio actual y sus subdirectorios

gunzip *.gz

Use el siguiente comando para extraer cualquier número de archivos .gz en el directorio actual y sus subdirectorios

sudo find . -name "*.gz" | xargs gunzip
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.