gunzip tous les fichiers .gz dans le répertoire

24

J'ai un répertoire avec beaucoup de .txt.gzfichiers (où les noms ne suivent pas un modèle spécifique.)

Quel est le moyen le plus simple pour gunzipeux? Je veux conserver leurs noms d'origine, afin qu'ils passent de whatevz.txt.gzàwhatevz.txt

Le chat unfun
la source

Réponses:

42

Et juste ça?

$ gunzip *.txt.gz

gunzipcréera un fichier gunzippé sans le .gzsuffixe et supprimera le fichier d'origine par défaut (voir ci-dessous pour plus de détails). *.txt.gzsera étendu par votre shell à tous les fichiers correspondants.

Ce dernier morceau peut vous causer des ennuis s'il s'étend à une très longue liste de fichiers. Dans ce cas, essayez d'utiliser findet -execde faire le travail pour vous.


Depuis la page de manuel 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.

Remarque sur le «nom d'origine»

gzip peut stocker et restaurer le nom de fichier utilisé au moment de la compression. Même si vous renommez le fichier compressé, vous pouvez être surpris de découvrir qu'il restaure à nouveau le nom d'origine.

Depuis la page de manuel de gzip:

Par défaut, gzip conserve le nom et l'horodatage du fichier d'origine dans le fichier compressé. Ils sont utilisés lors de la décompression du fichier avec l' -Noption. Cela est utile lorsque le nom du fichier compressé a été tronqué ou lorsque l'horodatage n'a pas été conservé après un transfert de fichier.

Et ces noms de fichiers stockés dans des métadonnées peuvent également être consultés avec 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
la source
0

Si vous souhaitez conserver le .gzfichier, vous pouvez utiliser ce qui suit: $ gunzip -c inputfile.gz >outputfile

somme
la source
0

Utilisez cette commande pour gunzip (décompresser les fichiers gz) tous les fichiers dans le répertoire courant et conserver les originaux:

gunzip -k *.gz
gansvv
la source