Wie kann ich ein Gunzip in ein anderes Zielverzeichnis als das aktuelle durchführen?
Das hat nicht funktioniert:
gunzip *.gz /putthemhere/
Wie kann ich ein Gunzip in ein anderes Zielverzeichnis als das aktuelle durchführen?
Das hat nicht funktioniert:
gunzip *.gz /putthemhere/
Antworten:
Bitten Sie gunzip
, auf Standardausgabe auszugeben und zu einer Datei in diesem Verzeichnis umzuleiten:
gunzip -c file.gz > /THERE/file
zcat
ist eine Abkürzung für gunzip -c
.
Wenn Sie mehrere Dateien gunzipen möchten, iterieren Sie über alle Dateien:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(Hier basename
wird der Teil des Dateinamens ohne die Erweiterung abgerufen)
Wenn Sie eine einzelne Datei extrahieren und in ein Stammverzeichnis schreiben müssen, verwenden Sie Folgendes sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Wenn die Datei von einer entfernten Quelle stammt (dh ssh, curl https usw.), können Sie dies folgendermaßen tun:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Beachten Sie, dass diese Beispiele nur für eine einzelne Datei funktionieren , im Gegensatz zum Beispiel * .gz, bei dem es sich um alle gzip-Dateien im Verzeichnis handelt.)
sudo tee $filename >/dev/null
ist etwas idiomatischer als das Verwenden von dd
.
Sie können versuchen, das Ergebnis mit> an den gewünschten Ort umzuleiten.