tar: Removing leading `/‘ from member names

Die Information "tar: Removing leading `/‘ from member names" dürfte jedem der unter Linux bereits mit tar gearbeitet hat bekannt vorkommen und von den meisten ignoriert werden. Nervig wird es, wenn tar per conjob verwendet wird und diese Info bei jedem Aufruf per Mail versendet wird.

Hinweis: Jeder ist für sein tun selbst verantwortlich, ich übernehme keine Verantwortung wenn die dargestellte Vorgehensweise sich bei euch anderes verhält. Getestet unter Ubuntu 14.04.4 LTS und tar 1.27.1

Wird der Befehl tar wie folgt ausgeführt

tar -czf etc.tar.gz /etc

kommt es zu der Ausgabe

tar: Removing leading `/' from member names

 

was auch richtig und sinnvoll ist. Aus Sicherheitsgründen entfernt tar den Slash (/) und ändert /etc/... nach etc/....

Auch wenn vielen der Sinn im ersten Moment nicht klar ist, beim entpacken hat es einen Riesenvorteil, wenn das Archiv nicht (aus versehen) an die Orginallocation entpackt wird, ohne das man eine andere Möglichkeit hätte.

Mittels der Option -P (–-absolute-names) weisen wir tar an, den absoluten Pfad zu verwenden und den ersten Slash nicht zu entfernen.

tar -Pczf etc.tar.gz /etc

 

Beim entpacken darf die Option -P (–-absolute-names) allerdings nicht verwendet werden, da sonst wirklich an der Orginallocation Dateien ersetzt werden.

Mittels

tar -xzf etc.tar.gz /etc

wird also ins aktuelle Unterverzeichnis entpackt und der erste Slash entfernt, was auch durch die Ausgabe von

tar: Removing leading `/' from member names

angezeigt wird. Nutzt man den tar Befehl zusätzlich mit der Option -P

tar -xzPf etc.tar.gz /etc

wird der absolute Pfad verwendet und in dem Beispiel /etc überschrieben.