Ich verwende GNU tar
mit einigen --exclude
angegebenen Instanzen.
Ich bekomme beides
Removing leading / from member names
Und
Removing leading / from hard link targets
Warnungen. Was ist der Unterschied zwischen ihnen?
Antwort1
Kein Eintrag in einem Tarball darf mit einem "/" beginnen, also einen absoluten Pfad haben. Dies ist eine Sicherheitsfunktion, damit Sie beim Entpacken des Tarballs sicher sein können, dass alle Dateien im Zielverzeichnis und den Unterverzeichnissen liegen, anstatt über das ganze System verstreut zu sein (und möglicherweise wichtige Dateien zu überschreiben).
Die angezeigten Warnungen entstehen durch tar
das Entfernen des führenden "/" aus allen absoluten Pfaden, sowohl für normale Dateien ("Mitgliedsnamen") als auch für Hardlinks ("Hardlink-Ziele").
Beispielsweise dieser Befehl ...
/home/user $ tar czf tarball.tgz /home/user/data
...würde zu diesen Warnungen führen, da "/home/..." in "home/..." umgewandelt wird. Das Auspacken des Tarballs...
/home/user $ tar xzf tarball.tgz
...würde dazu führen, dass alle Dateien nach entpackt würden /home/user/home/user/data
. Wenn tar
die führenden Schrägstriche nicht entfernt worden wären, /home/user/data
wären die Dateien in stattdessen überschrieben worden.