Antworten:
Die einfache Lösung, wenn Sie vor allem nicht brauchen zu verwenden -C
zu sagen , tar
um ein anderen Verzeichnis zu ändern, ist einfach , um den vollständigen Pfad zum Archiv auf der Befehlszeile angeben. Dann können Sie sich in einem beliebigen Verzeichnis befinden, um die gewünschte Verzeichnisstruktur im Archiv zu erstellen.
Im Folgenden wird das Archiv erstellt /var/www/file.tar.gz
und file1
aus dem aktuellen Verzeichnis (unabhängig davon, was gerade passiert) ohne Informationen zum Pfad im Archiv abgelegt .
tar czf /var/www/file.tar.gz file1
Der Pfad (entweder zum Archiv, zu den einzelnen Dateien oder zu beiden) kann natürlich auch relativ sein. Wenn file1
in ist /tmp
, sind Sie in /var/spool
und wollen das Archiv schaffen , in /var/www
, Sie so etwas wie verwenden:
tar czf ../www/file1.tar.gz /tmp/file1
Es gibt eine Million Variationen des Themas, aber dies sollte Ihnen den Einstieg erleichtern. Fügen Sie die v
Flagge hinzu, wenn Sie sehen möchten, was tar
tatsächlich geschieht.
$PWD
ist, schien es am sichersten, im Beispiel einen absoluten Pfad zu verwenden.
file1
im Tar-Archiv sein /tmp
. Dies kann oder kann nicht das sein, was Sie erwarten.
Ich verwandle die komprimierten Daten in einen Stream (-) und benenne sie leicht um und finde sie (>), wo immer ich will
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
ist viel idiomatischer (und kürzer).
Ich denke, es sollte sein:
tar czf file.tar.gz -C /var/www/ file1
Welches funktioniert für mich. Es fordert Sie auf, das Verzeichnis zu wechseln und dann die Datei auszuwählen.
-C
(was nicht ungewöhnlich ist, da es vage dokumentiert ist). Einzelheiten finden Sie unter serverfault.com/q/416002/86283 .