Ich habe ein Verzeichnis mit vielen .txt.gz
Dateien (wobei die Namen keinem bestimmten Muster folgen.)
Was ist der einfachste Weg zu gunzip
ihnen? Ich möchte ihre ursprünglichen Namen behalten, damit sie von whatevz.txt.gz
zu gehenwhatevz.txt
Ich habe ein Verzeichnis mit vielen .txt.gz
Dateien (wobei die Namen keinem bestimmten Muster folgen.)
Was ist der einfachste Weg zu gunzip
ihnen? Ich möchte ihre ursprünglichen Namen behalten, damit sie von whatevz.txt.gz
zu gehenwhatevz.txt
Antworten:
Wie wäre es nur damit?
$ gunzip *.txt.gz
gunzip
erstellt eine gunzipped-Datei ohne das .gz
Suffix und entfernt standardmäßig die Originaldatei (siehe unten für Details). *.txt.gz
wird von Ihrer Shell auf alle passenden Dateien erweitert.
Dieses letzte Bit kann Sie in Schwierigkeiten bringen, wenn es zu einer sehr langen Liste von Dateien erweitert wird. Versuchen Sie in diesem Fall, find
und -exec
zu verwenden, um die Aufgabe für Sie zu erledigen.
Von der Manpage 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 kann den zur Komprimierungszeit verwendeten Dateinamen speichern und wiederherstellen. Selbst wenn Sie die komprimierte Datei umbenennen, können Sie überrascht sein, dass der ursprüngliche Name wieder hergestellt wird.
Aus der gzip-Manpage:
Standardmäßig behält gzip den ursprünglichen Dateinamen und den Zeitstempel in der komprimierten Datei bei. Diese werden beim Dekomprimieren der Datei mit der
-N
Option verwendet. Dies ist nützlich, wenn der Name der komprimierten Datei abgeschnitten wurde oder der Zeitstempel nach einer Dateiübertragung nicht beibehalten wurde.
Und diese in Metadaten gespeicherten Dateinamen können auch angezeigt werden mit 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