Sie scheinen die Bedeutung von falsch verstanden zu haben -C(was nicht ungewöhnlich ist, da es vage dokumentiert ist). Einzelheiten finden Sie unter serverfault.com/q/416002/86283 .
NN
Antworten:
47
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.
@NN Absolut, aber da wir keine Ahnung haben, was $PWDist, schien es am sichersten, im Beispiel einen absoluten Pfad zu verwenden.
ein Lebenslauf
Tatsächlich habe ich nur gedacht, dass es Sinn macht, dies zu berücksichtigen, um zu zeigen, dass es sich um eine verfügbare Option zur Lösung des Problems handelt.
NN
Auf diese Weise wird der Pfad file1im Tar-Archiv sein /tmp. Dies kann oder kann nicht das sein, was Sie erwarten.
Mouviciel
8
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
(was nicht ungewöhnlich ist, da es vage dokumentiert ist). Einzelheiten finden Sie unter serverfault.com/q/416002/86283 .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
undfile1
aus dem aktuellen Verzeichnis (unabhängig davon, was gerade passiert) ohne Informationen zum Pfad im Archiv abgelegt .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: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, wastar
tatsächlich geschieht.quelle
$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
quelle
-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.
quelle
Hat perfekt funktioniert
quelle