web-dev-qa-db-fra.com

gunzip tous les fichiers .gz dans le répertoire

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

Quelle est la manière la plus simple de les gunzip? Je souhaite conserver leurs noms d'origine, afin qu'ils passent de whatevz.txt.gz à whatevz.txt

25
The Unfun Cat

Et juste ça?

$ gunzip *.txt.gz

gunzip créera un fichier zippé sans le suffixe .gz et supprimera le fichier d'origine par défaut (voir ci-dessous pour plus de détails). *.txt.gz Sera é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 find et -exec Pour 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'option -N. 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
44
gertvdijk

Si vous souhaitez conserver le .gz fichier, vous pouvez utiliser les éléments suivants: $ gunzip -c inputfile.gz >outputfile

0
sumion

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
0
gansvv