Antworten:
Die einfache Lösung, wenn Sie vor allem nicht brauchen zu verwenden -Czu sagen , tarum 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.gzund file1aus 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 file1in ist /tmp, sind Sie in /var/spoolund 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 vFlagge hinzu, wenn Sie sehen möchten, was tartatsächlich geschieht.
$PWDist, schien es am sichersten, im Beispiel einen absoluten Pfad zu verwenden.
file1im 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
-Cist 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 .