gzip – gunzip todos los archivos .gz en el directorio

Pregunta:

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

¿Cuál es la forma más sencilla de ponerlos en gunzip ? Quiero conservar sus nombres originales, para que pasen de whatevz.txt.gz a whatevz.txt

Respuesta:

¿Qué tal solo esto?

$ gunzip *.txt.gz

gunzip creará un archivo comprimido sin el sufijo .gz y eliminará el archivo original de forma predeterminada (consulte los detalles a continuación). *.txt.gz será expandido por su shell a todos los archivos que coincidan.

Este último bit puede causarle problemas si se expande a una lista muy larga de archivos. En ese caso, intente usar find y -exec para hacer el trabajo por usted.


Desde la página de 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 el '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 restaura al nombre original nuevamente.

Desde la página de manual de gzip:

De forma predeterminada, gzip mantiene el nombre del archivo original y la marca de tiempo en el archivo comprimido. Se utilizan al descomprimir el archivo con la opción -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 el 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

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım