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