J'ai un répertoire avec beaucoup de .txt.gz
fichiers (où les noms ne suivent pas un modèle spécifique.)
Quel est le moyen le plus simple pour gunzip
eux? Je veux conserver leurs noms d'origine, afin qu'ils passent de whatevz.txt.gz
àwhatevz.txt
Et juste ça?
$ gunzip *.txt.gz
gunzip
créera un fichier gunzippé sans le .gz
suffixe 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
de 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.
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'
-N
option. 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
Si vous souhaitez conserver le .gz
fichier, vous pouvez utiliser ce qui suit:
$ gunzip -c inputfile.gz >outputfile
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