为什么 tar -c 命令从成员名称中删除前导“/”

Why does tar -c command remove leading `/' from member names

寻找实际原因,命令 tar -c /filea > /fileb 给出以下输出:tar:Removing_leading / from member names.

我已经对其进行了相当多的研究,但只遇到了非常模糊的原因,例如防止某种攻击等。大多数人只是在您需要时提供解决方法的解释。

我不想要解决方法。我只是好奇它发生的实际原因。任何帮助将不胜感激。

这有助于避免可能导致重要文件被覆盖的错误。文件通常是相对于 tar 命令的当前工作目录提取的。

举个例子:

如果您归档 /etc/httpd 这个目录,它会删除前导 /。因为。如果它在提取当前 /etc/httpd 后存在,将被存档 /etc/httpd.

覆盖

删除前导“/”后,它会解压缩到您的工作目录中。如果你提取到 /var/tmp 目录,它将保留为 /var/tmp/etc/httpd