不同的“删除主要斜线”警告的含义是什么?


7

我正在使用gnu tar 有几个例子 --exclude 指定。

我得到了两个

Removing leading / from member names

Removing leading / from hard link targets

警告。他们之间有什么区别?

Answers:


9

tarball中的条目不能以“/”开头,即具有绝对路径。这是一个安全功能,因此如果解压缩tarball,您可以确保所有文件都驻留在目标目录和子目录中,而不是分散在整个系统中(并可能覆盖关键文件)。

您看到的警告来自 tar 从正常文件(“成员名称”)和硬链接(“硬链接目标”)的任何绝对路径中剥离前导“/”。

例如,这个命令......

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

...会导致这些警告,因为“/ home / ...”会转换为“home / ...”。解压缩tarball ...

/home/user $ tar xzf tarball.tgz

...会导致所有文件被解压缩到 /home/user/home/user/data。如果 tar 没有删除领先的斜杠,文件中 /home/user/data 本来会被覆盖。


4
tar 档案 允许使用绝对名称,可以禁用剥离 -P 如有必要......也应该注意到 柏油 存档以与符号链接类似的方式存储硬链接 - 第二个和更多链接实际上指向第一个链接 路径 (而不是inode),这就是显示第二条消息的原因。
grawity

@grawity:呃......让我们说吧 可能 禁用剥离。它与解压缩当前目录中的数千个文件一样“允许”。 ;-)
DevSolar

我理解剥离斜线的原因,为什么它是默认值等,但不知道两个警告中的关键区别是“普通文件”与“硬链接”。谢谢(还有grawity)。
user1071847
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.