What's the meaning of the different "removing leading slash" warnings?

7

1

I'm using gnu tar with a few instances of --exclude specified.

I get both the

Removing leading / from member names

and

Removing leading / from hard link targets

warnings. What's the difference between them?

user1071847

Posted 2012-06-04T12:07:02.947

Reputation: 209

Answers

9

No entry within a tarball may begin with a "/", i.e. have an absolute path. It's a security feature, so that if you unpack the tarball, you can be sure that all files will reside in the target directory and subdirectories, instead of being scattered all over the system (and possibly overwriting critical files).

The warnings you see result from tar stripping the leading "/" from any absolute paths, both for normal files ("member names") and hard links ("hard link targets").

For example, this command...

/home/user $ tar czf tarball.tgz /home/user/data

...would result in those warnings, as "/home/..." is converted into "home/...". Unpacking the tarball...

/home/user $ tar xzf tarball.tgz

...would result in all files being unpacked to /home/user/home/user/data. If tar hadn't stripped the leading slashes, the files in /home/user/data would have been overwritten instead.

DevSolar

Posted 2012-06-04T12:07:02.947

Reputation: 3 860

4tar archives are allowed to have absolute names, the stripping can be disabled with -P if necessary... It should probably also be noted that tar archives store hard links in a similar manner to symlinks -- the second and further links actually point to the first by its path (not by inode), which is why the second message is displayed. – user1686 – 2012-06-04T14:17:26.913

@grawity: Uhhhh... let's say it's possible to disable the stripping. It's about as "allowable" as unpacking thousands of files in the current directory. ;-) – DevSolar – 2012-06-04T14:26:46.003

I understood the reason for stripping the slash, why it's the default, etc, but didn't know that the key difference in the two warnings was "normal files" vs "hard links". Thanks (and to grawity too). – user1071847 – 2012-06-04T14:39:06.687