linux - 为什么 tar -c 命令从成员名称中删除前导 `/'

标签 linux bash tar

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

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

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

最佳答案

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

只是例子:

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

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

关于linux - 为什么 tar -c 命令从成员名称中删除前导 `/',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732238/

相关文章:

python - 如何检查是否可以使用 tarfile 模块写入 tar 文件?

linux - 无法在 Linux 上正确安装 gcc

bash - Shell 脚本和路径中的引用

BASH:同时并排显示两个文件

bash - 如何使用 sshpass 命令从远程机器获取退出代码

linux - 将 tar.gz 重新打包为 tar 并排除一些文件

github - codeload.github.com 与 api.github.com 有何不同?

linux - 如何在其中包含重启命令的 shell 文件中取回控制权

linux - 如何在 BASH 中创建一个以特定格式列出文件的 FOR 循环

c - C 的 Linux 目录大小问题