tar: Removing leading '/' from member names


RT

tar: Removing leading '/' from member names

去除文件名中前导的根目录“/”,tar 命令在压缩文件时,默认会取相对路径,不会取从根路径下来的绝对路径,所以,如果待压缩的源路径是绝对路径,便会报该错误


[zhangqi@bogon Desktop]$ tar -zcvf abc.tar.gz shellscript/*shellscript/for_ex1.sh
shellscript/for_ex2.sh
shellscript/for_ex3.sh
shellscript/for_ex4.sh
shellscript/for_ex5.sh
shellscript/for_ex6.sh
[zhangqi@bogon Desktop]$ tar -zcvf bcd.tar.gz /home/zhangqi/Desktop/shellscript/*
tar: Removing leading `/' from member names
/home/zhangqi/Desktop/shellscript/for_ex1.sh
/home/zhangqi/Desktop/shellscript/for_ex2.sh
/home/zhangqi/Desktop/shellscript/for_ex3.sh
/home/zhangqi/Desktop/shellscript/for_ex4.sh
/home/zhangqi/Desktop/shellscript/for_ex5.sh
/home/zhangqi/Desktop/shellscript/for_ex6.sh
[zhangqi@bogon Desktop]$ 
[zhangqi@bogon Desktop]$ ll
total 16
-rw-rw-r--. 1 zhangqi zhangqi  491 Jul 16 17:03 abc.tar.gz
-rwxrw-r--. 1 zhangqi zhangqi  319 Jul 16 15:44 backup.sh
-rw-rw-r--. 1 zhangqi zhangqi  516 Jul 16 17:04 bcd.tar.gz
drwxrwxr-x. 2 zhangqi zhangqi 4096 Jul 16 15:00 shellscript
[zhangqi@bogon Desktop]$ 

可以看到,第二次执行命令tar -zcvf bcd.tar.gz /home/zhangqi/Desktop/shellscript/* 时报错,但是后面的文件是正常生成的。


如何解决这个报错呢,可以通过man tar 命令来查看,里面有一个参数大写的“P”

P 后备注为absolute-names 绝对名称,可以理解为绝对路径

下面注释为 don’t strip leading ‘/’s from file names 不从文件名中剥离“/


再对上面命令做修改

[zhangqi@bogon Desktop]$ tar -zcvfP cde.tar.gz /home/zhangqi/Desktop/shellscript/*
tar: cde.tar.gz: Cannot stat: No such file or directory
tar: Removing leading `/' from member names
/home/zhangqi/Desktop/shellscript/for_ex1.sh
/home/zhangqi/Desktop/shellscript/for_ex2.sh
/home/zhangqi/Desktop/shellscript/for_ex3.sh
/home/zhangqi/Desktop/shellscript/for_ex4.sh
/home/zhangqi/Desktop/shellscript/for_ex5.sh
/home/zhangqi/Desktop/shellscript/for_ex6.sh
tar: Exiting with failure status due to previous errors
[zhangqi@bogon Desktop]$ ll
total 20
-rw-rw-r--. 1 zhangqi zhangqi  491 Jul 16 17:03 abc.tar.gz
-rwxrw-r--. 1 zhangqi zhangqi  319 Jul 16 15:44 backup.sh
-rw-rw-r--. 1 zhangqi zhangqi  516 Jul 16 17:04 bcd.tar.gz
-rw-rw-r--. 1 zhangqi zhangqi  516 Jul 16 17:12 P
drwxrwxr-x. 2 zhangqi zhangqi 4096 Jul 16 15:00 shellscript
[zhangqi@bogon Desktop]$ tar -zcvPf cde.tar.gz /home/zhangqi/Desktop/shellscript/*
/home/zhangqi/Desktop/shellscript/for_ex1.sh
/home/zhangqi/Desktop/shellscript/for_ex2.sh
/home/zhangqi/Desktop/shellscript/for_ex3.sh
/home/zhangqi/Desktop/shellscript/for_ex4.sh
/home/zhangqi/Desktop/shellscript/for_ex5.sh
/home/zhangqi/Desktop/shellscript/for_ex6.sh
[zhangqi@bogon Desktop]$ ll
total 24
-rw-rw-r--. 1 zhangqi zhangqi  491 Jul 16 17:03 abc.tar.gz
-rwxrw-r--. 1 zhangqi zhangqi  319 Jul 16 15:44 backup.sh
-rw-rw-r--. 1 zhangqi zhangqi  516 Jul 16 17:04 bcd.tar.gz
-rw-rw-r--. 1 zhangqi zhangqi  518 Jul 16 17:13 cde.tar.gz
-rw-rw-r--. 1 zhangqi zhangqi  516 Jul 16 17:12 P
drwxrwxr-x. 2 zhangqi zhangqi 4096 Jul 16 15:00 shellscript
[zhangqi@bogon Desktop]$ 

通过示例可以看到,大写的P 不可以加到最后,需要加到f 前面,至于为何不可,尚未查到具体原因,有知道的小伙伴请不吝赐教,谢谢。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值