linux tar 报错 Removing leading ‘/‘ from member names 解决方法

报错信息 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表示filename,后面必须紧接要创建的文件名称

 

 

 

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...