Ich versuche, ein Archiv mit tar mit relativen Pfaden zu erstellen. Ich benutze den folgenden Befehl:
tar czf ~/files/wp/my-page-order.tar.gz -C ~/webapps/zers/wp-content/plugins/ ~/webapps/zers/wp-content/plugins/my-page-order
Die archivierten Dateien haben jedoch noch absolute Pfade. Wie kann ich tar mit relativen Pfaden verwenden?
Antworten:
'~' wird durch die Shell erweitert. Verwenden Sie nicht '~' mit -C:
(tar beinhaltet webapps / zers / wp-content / plugins / mein-seiten-ordnungspfad) oder
(tar wird den Pfad für die Bestellung meiner Seite enthalten)
Oder einfach erstmal CD ....
quelle
-C
aktuelle Arbeitsverzeichnis geändert wird, wie in Antwort von Lekensteyn erläutert.-C
als relativer Pfad hätte angegeben werden müssen, sondern stattdessen als absoluter Pfad. Die Verwendung von ~ hier spielt überhaupt keine Rolle.-C new_cwd
ändert das aktuelle Arbeitsverzeichnis innew_cwd
. Die folgenden Argumente werden dann relativ zu ausgewertetnew_cwd
.quelle
Die Nicht-GNU-Lösung
tar
hat keine-z
Option, um nur zu erwähnen:EDIT (mit
&&
und ohnerm
):quelle
rm
; Warum nehmen Sie es in Ihre Antwort auf? (2) Ihre Antwort archiviert das falsche Verzeichnis. (3) Warum haben sich geändert Sietar -z
zutar | gzip
? (4) Solange Sie verwenden werden&&
, sollten Sie wahrscheinlich auch&&
nach dem verwendenpushd
.-z
(4), die ich wahrscheinlich&&
in einem Skript verwenden würde, aber ich denke, dies ist in einem "~/webapps/zers/wp-content/plugins/my-page-order
mit Ausgabe nach archivieren~/files/wp/my-page-order.tar.gz
; Ihre Befehlsarchive~/files/wp/my-page-order
. (3) Vielen Dank, dass Sie Ihre Antwort bearbeitet haben, um zu erklären, warum Sie sie verwendet habengzip
.