Wie dekomprimiere ich Dateien mit gunzip und bewahre Originale auf?

2419
Paulina

Ich habe mehrere txt.gz-Dateien in einem Verzeichnis, das ich alle dekomprimieren möchte, und zwar in einer Reihe von TXT-Dateien, ohne die Originale loszuwerden. ABER ich möchte sie nicht in der Standardausgabe haben, wie dies mit der Option -c möglich wäre. Ich möchte sie lieber als Dateien im selben Verzeichnis haben, nur mit Dateiname file.txt (wie es mit gunzip -c file.txt.gz> file.txt möglich ist). Könnte jemand irgendwelche Vorschläge haben? Vielen Dank!!

0

2 Antworten auf die Frage

3
mpy

Verwenden Sie eine einfache for-Schleife:

 for i in *.txt.gz; do zcat "$i" > "$"; done 

zcatentspricht gunzip -c, aber kürzer.

Die Variable $iübernimmt die Namen aller *.txt.gzDateien im aktuellen Verzeichnis (nacheinander). $entfernt die Erweiterung ( .gz) vom Dateinamen.

Hinweis : Dies ist die Bash-Syntax.

Nun, das würde die gerettete Zeit nicht wiederherstellen. Wenn Sie das möchten, ordnen Sie stattdessen ein temporäres Verzeichnis zu, kopieren Sie dann das `.txt.gz` dorthin und dekomprimieren Sie es mit` gzip -d` und verschieben Sie dann das `.txt` zurück. Wiederholen Sie dies für jedes` .txt.gz` und dann entfernen Sie das temporäre Verzeichnis. Dan D. vor 11 Jahren 1
@DanD .: Die Verwendung von "touch -r" ist viel einfacher. Dennis vor 11 Jahren 2
2
LiuYan 刘研

You can use p7zip instead of gunzip, it will keep your original archive files.

7za e original.txt.gz

To decompress multiple files, see @mpy's answer.


Update

As per @Dennis's comment, wrap wildcard with double quotation mark, p7zip will extract all .txt.gz files.

7za e "*.txt.gz" 
Wenn Sie 7-Zip bereits verwenden, machen Sie einfach `7za e" * .txt.gz "`. Dennis vor 11 Jahren 1
@Dennis, gut das zu wissen. LiuYan 刘研 vor 11 Jahren 0