tar: can‘t remove old file dir: Is a directory

建立两个文件夹,test  test1如下,然后将 test 下压缩后,解压到 test1 

tiny : ~/test # ll
total 4
lrwxrwxrwx    1 root     root             4 Nov  4 02:57 dir -> dir1
drwxr-xr-x    2 root     root          4096 Nov  4 02:57 dir1


tiny : ~/test1 # ll
total 8
drwxr-xr-x    2 root     root          4096 Nov  4 02:58 dir
drwxr-xr-x    2 root     root          4096 Nov  4 02:58 dir1
tiny : ~/test # tar xvf test.tar.gz -C ../test1/
dir
tar: can't remove old file dir: Is a directory

说明 软链接 是无法覆盖  同名目录的,会导致解压失败。

busybox tar 命令的选项 默认不会根据符号链接优先的原则,需要手动加 参数 -h ,单独的tar 命令已经默认支持 -h的功能,不用自己再加这个参数了 

--recursive-unlink ( empty hierarchies prior to extracting directory)在提取目录之前清空层次结构

所以解决方法有两种

1、删除要覆盖的目标文件夹内的内容

2、tar xfh xxx.tar.gz -C /xxx  加上 -h 参数

3  --recursive-unlink

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值