为什么Linux用绝对路径打包文件时会提示tar: 从成员名中删除开头的“/”

标题为什么Linux用绝对路径打包文件时会提示tar: 从成员名中删除开头的“/”

当大家用tar打包文件时,通常会有2种方式来指定需要打包文件的目录位置,一个是采用相对路径,一个是采用绝对路径;当使用相对路径进行打包,结果一切正常;如果换成使用绝对路径来打包,却会出现以下提示信息:tar: 从成员名中删除开头的“/”,这是为何呢?
在这里插入图片描述

首先,出现这种提示是正常的,无须担心,它只是linux系统对用户的一个善意的提醒,并不影响打包操作,如果不想看到这个提示信息,在执行打包命令时,带上选项P就可以了。那这提醒是一个什么用意呢?我们来分析一下:

下面是/3.12目录下的文件结构:
在这里插入图片描述

我们执行一个如下打包命令,这时系统就会给出一个提示:
在这里插入图片描述

通过ll我们可以看到包文件已经成功创建:
在这里插入图片描述

而且我们还可以查看包文件里面的内容:
在这里插入图片描述

这时,我们再通过命令来直接解包,我们会发现解包后的目录名称是3.12,整个的文件结构是3.12/a/a1/1.txt:
在这里插入图片描述

查看3.12下面的文件结构,实际只有文件a/a1/1.txt,没有任何问题:
在这里插入图片描述

也就是说,当使用绝对路径进行打包时,系统会按照绝对路径来对被打包文件进行打包,解包时自然也是按照这个规则来进行;这样我们就可以理解了,如果当时打包时,系统不去掉打包文件前面的/的话,那它解包后的文件将会是以/3.12/a/a1/1.txt方式去覆盖,这种覆盖的方式会造成2中可能:1)直接把根目录覆盖了;2)如果解包文件存放到当前目录下,文件名是不允许以/开头的。综合以上,系统在打包时就去掉了/,这就是从成员名中删除开头的“/”的真正原因。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值