Wie kann ich in ein anderes Zielverzeichnis wechseln?

115168
Scott Szretter

Wie kann ich in ein anderes Zielverzeichnis als das aktuelle zippen?

Das hat nicht funktioniert:

gunzip *.gz /putthemhere/ 
67

3 Antworten auf die Frage

87
Benjamin Bannier

Bitten Sie gunzipum Ausgabe in die Standardausgabe und umleiten zu einer Datei in diesem Verzeichnis:

gunzip -c file.gz > /THERE/file 

zcatist eine Abkürzung für gunzip -c.

Wenn Sie möchten, dass mehrere Dateien mit einem Klick versehen werden, iterieren Sie alle Dateien:

for f in *.gz; do STEM=$(basename "$" .gz) gunzip -c "$" > /THERE/"$" done 

( basenamewird verwendet, um den Teil des Dateinamens ohne die Erweiterung zu erhalten)

Erstellt die Datei, behält jedoch nicht den Besitz, die Berechtigungen usw. der Datei. Dies kann je nach Ihrer Situation gut oder schlecht sein. Chris Johnson vor 9 Jahren 2
1
jangelfdez

Sie können mit> versuchen, das Ergebnis an den gewünschten Ort umzuleiten.

1
Jamieson Becker

Wenn Sie eine einzelne Datei extrahieren und in ein Root-Verzeichnis 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 (z. B. 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 ausschließlich um gzipierte Dateien im Verzeichnis handelt.)

Für das Schreiben mit Root-Rechten ist sudo tee $ filename> / dev / null ein wenig idiomatischer als `dd`. dcoles vor 5 Jahren 0