Sie möchten eine TAR-Datei erstellen, die sich nicht an dem Ort befindet, an dem sich die Dateien befinden, die Sie tar benötigen?
Es gibt viele Möglichkeiten, dies zu tun.
Wenn es lokal erstellt werden soll (= auf demselben Computer):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
Sie können tar am Ende dieses Befehls zusätzliche Dateien oder Verzeichnisse hinzufügen.
Wenn es remote erstellt werden soll (dh Sie möchten die TAR-Datei auf einem Remote-Host aus demjenigen erstellen, der die zu tarierenden Daten enthält):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
Die spätere Version ist sehr vielseitig. Zum Beispiel können Sie auch ein Verzeichnis + Unterverzeichnisse mit derselben Technik "duplizieren":
Duplizieren Sie ein Verzeichnis + Unterverzeichnisse in ein anderes lokales Verzeichnis:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
Duplizieren Sie ein Verzeichnis + Unterverzeichnisse in ein anderes Remote-Verzeichnis:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
Löschen Sie das 'v', wenn Sie es nicht benötigen, um Dateien anzuzeigen, da sie tariert (oder nicht geteert) sind: Es geht dann viel schneller, sagt aber nicht viel, es sei denn, es liegt ein Fehler vor.
Ich benutze ". / ..." für die Quelle, um tar zu zwingen, es als RELATIVEN Pfad zu speichern. In einigen Fällen möchten Sie zusätzliche Pfadinformationen hinzufügen:
Um beispielsweise die crontab-Dateien zu tarieren, einschließlich der in / etc, können Sie Folgendes tun:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
Ich verwende absichtlich den relativen Pfad: Einige ALTE Versionen von tar können gefährlich sein und Dateien mit ihrem ursprünglichen GLOBAL-Pfad extrahieren, was bedeutet, dass Sie cd /safedir ; tar xvf sometar
Folgendes tun können: und die Dateien mit globalen Namen überschreiben Dateien an ihrem ursprünglichen Pfad, der AUSSERHALB von / safedir liegt und nicht darunter! Sehr gefährlich und immer noch möglich, da es alte Produktionsserver gibt. Es ist besser, immer relative Pfade zu verwenden, selbst wenn Sie einen neueren Teer verwenden.
cd /opt; tar zcf $HOME/junk.tar.gz junk
.