黑帽联盟

标题: tar: Removing leading `/’ from member names [打印本页]

作者: yun    时间: 2017-2-2 16:39
标题: tar: Removing leading `/’ from member names
这并不是一个错误,而是一个警告,原因很简单,就是你在用tar打包一个绝对路径,要避免这个警告信息的话,在执行tar之前,先cd到要打包的文件所在的路径。

下面文章很详细的解释了为什么,已经写得相当好了,我这里就不重新造轮子了,拿来主义一下~

*************************************************

首先应该明确:*nix系统中,使用tar对文件打包时,一般不建议使用绝对路径。

通常是在两台环境相似的机器上进行同步复制的时候,才有需要使用绝对路径进行打包。使用绝对路径打包时如果不指定相应的参数,tar会产生一句警告信息:
"tar: Removing leading `/’ from member names"

并且实际产生的压缩包会将绝对路径转化为相对路径。

比如:
  1. root@queen ~ # tar -czvf robin.tar.gz /home/robin
  2. tar: Removing leading `/' from member names
  3. /home/robin/
  4. /home/robin/file1
  5. /home/robin/file2
  6. /home/robin/file3
  7. root@queen ~ # tar -tzvf robin.tar.gz
  8. drwxr-xr-x robin/root        0 2017-02-01 18:51:31 home/robin/
  9. -rw-r--r-- robin/root        0 2017-02-01 18:51:28 home/robin/file1
  10. -rw-r--r-- robin/root        0 2017-02-01 18:51:30 home/robin/file2
  11. -rw-r--r-- robin/root        0 2017-02-01 18:51:31 home/robin/file3
  12. root@queen ~ #
复制代码
这样的一个压缩包,如果我们再去解开,就会当前目录(也即此例中的“~”)下再新建出“./home/robin/” 两级目录。对于这样的压缩包,解压方法是使用参数 “-C”指解压的目录为根目录(“/”):
  1. tar -xzvf robin.tar.gz -C /
复制代码
更为可靠的方法是在打包和解开的时候都使用参数 -P:
  1. root@queen ~ # tar -czvPf robin.tar.gz /home/robin/
  2. /home/robin/
  3. /home/robin/file1
  4. /home/robin/file2
  5. /home/robin/file3
  6. root@queen ~ # tar tzvf robin.tar.gz
  7. drwxr-xr-x robin/root 0 2017-02-01 18:51:31 home/robin/
  8. -rw-r--r-- robin/root 0 2017-02-01 18:51:28 home/robin/file1
  9. -rw-r--r-- robin/root 0 2017-02-01 18:51:30 home/robin/file2
  10. -rw-r--r-- robin/root 0 2017-02-01 18:51:31 home/robin/file3
  11. root@queen ~ # tar -xzvPf robin.tar.gz
  12. /home/robin/
  13. /home/robin/file1
  14. /home/robin/file2
  15. /home/robin/file3
  16. root@queen ~ #
复制代码





欢迎光临 黑帽联盟 (https://bbs.cnblackhat.com/) Powered by Discuz! X2.5