gunzip todos los archivos .gz en el directorio

24

Tengo un directorio con muchos .txt.gzarchivos (donde los nombres no siguen un patrón específico).

¿Cuál es el camino más simple para gunzipellos? Quiero preservar sus nombres originales, por lo que van desde whatevz.txt.gzawhatevz.txt

El gato no divertido
fuente

Respuestas:

42

¿Qué tal solo esto?

$ gunzip *.txt.gz

gunzipcreará un archivo comprimido sin el .gzsufijo y eliminará el archivo original de forma predeterminada (ver más abajo para más detalles). *.txt.gzserá expandido por su shell a todos los archivos que coincidan.

Este último bit puede meterte en problemas si se expande a una larga lista de archivos. En ese caso, intente usar findy -exechacer el trabajo por usted.


Desde la página del manual gzip(1):

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

Nota sobre 'nombre original'

gzip puede almacenar y restaurar el nombre de archivo utilizado en el momento de la compresión. Incluso si cambia el nombre del archivo comprimido, puede sorprenderse al descubrir que se restablece al nombre original nuevamente.

Desde la página de manual de gzip:

Por defecto, gzip mantiene el nombre del archivo original y la marca de tiempo en el archivo comprimido. Estos se utilizan al descomprimir el archivo con la -Nopción. Esto es útil cuando el nombre del archivo comprimido se truncó o cuando la marca de tiempo no se conservó después de una transferencia de archivo.

Y estos nombres de archivo almacenados en metadatos también se pueden ver con file:

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig
gertvdijk
fuente
0

Si desea conservar el .gzarchivo, puede usar lo siguiente: $ gunzip -c inputfile.gz >outputfile

sumion
fuente
0

Use este comando para descomprimir (descomprimir archivos gz) todos los archivos en el directorio actual y mantener los originales:

gunzip -k *.gz
gansvv
fuente