[原]tar 报从成员名中删除开头的“/”的问题

    使用tar 命令打包数据时,有时候会报:从成员名中删除开头的“/”的警告,原因是什么呢?

例如:

[root@al_01 ~]# tar czvf /root/keystonerc.tar.gz /root/keystonerc_*
tar: 从成员名中删除开头的“/”
/root/keystonerc_admin
/root/keystonerc_demo
/root/keystonerc_laq
[root@al_01 ~]# tar tzvf keystonerc.tar.gz                        
-rw——- root/root       185 2014-01-07 18:16 root/keystonerc_admin
-rw——- root/root       170 2014-01-07 19:12 root/keystonerc_demo
-rw——- root/root       189 2014-01-08 18:21 root/keystonerc_laq

实际上,原因是打包的文件使用了绝对路径,改用相对路径就不会有这个警告了:

[root@al_01 ~]# tar czvf /root/keystonerc.tar.gz keystonerc_*
keystonerc_admin
keystonerc_demo
keystonerc_laq
[root@al_01 ~]# tar tzvf keystonerc.tar.gz                    
-rw——- root/root       185 2014-01-07 18:16 keystonerc_admin
-rw——- root/root       170 2014-01-07 19:12 keystonerc_demo
-rw——- root/root       189 2014-01-08 18:21 keystonerc_laq

也可以使用-P 参数,强制指定为绝对路径:

[root@al_01 ~]# tar czvfP /root/keystonerc.tar.gz /root/keystonerc_*
/root/keystonerc_admin
/root/keystonerc_demo
/root/keystonerc_laq
[root@al_01 ~]# tar tzvf keystonerc.tar.gz                          
tar: 从成员名中删除开头的“/”
-rw——- root/root       185 2014-01-07 18:16 /root/keystonerc_admin
-rw——- root/root       170 2014-01-07 19:12 /root/keystonerc_demo
-rw——- root/root       189 2014-01-08 18:21 /root/keystonerc_laq

它们的差别主要在于打包文件中的路径是不同的。当带-P 参数时,压缩包中的路径使用绝对路径方式,而没有-P 参数会自动删除前缀的根符号,也就是本文开头的提示信息。

这在解压时有很大的差异!

如果使用相对路径的压缩包,解压时会放到当前目录。而使用绝对路径的压缩包,则可以再通过-P 参数解压到绝对路径的位置上,而不同通过-C 参数指定起始路径了。

例如:

[root@al_01 ~]# tar tzvf keystonerc.tar.gz
tar: 从成员名中删除开头的“/”
-rw——- root/root       185 2014-01-07 18:16 /root/keystonerc_admin
-rw——- root/root       170 2014-01-07 19:12 /root/keystonerc_demo
-rw——- root/root       189 2014-01-08 18:21 /root/keystonerc_laq
[root@al_01 ~]# mkdir /tmp/dir
[root@al_01 ~]# cd /tmp/dir
[root@al_01 dir]# tar xzvf /root/keystonerc.tar.gz
tar: 从成员名中删除开头的“/”
/root/keystonerc_admin
/root/keystonerc_demo
/root/keystonerc_laq
[root@al_01 dir]# ll root/ <–当前目录中
总用量 12
-rw——- 1 root root 185 1月   7 18:16 keystonerc_admin
-rw——- 1 root root 170 1月   7 19:12 keystonerc_demo
-rw——- 1 root root 189 1月   8 18:21 keystonerc_laq
[root@al_01 dir]# tar xzvfP /root/keystonerc.tar.gz <–绝对路径,直接解压到/root目录下
/root/keystonerc_admin
/root/keystonerc_demo
/root/keystonerc_laq

那种方式都可以,注意解压参数即可,千万不要覆盖有用的文件了!

tar命令详解

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98265.html

(0)
上一篇 2021年8月20日
下一篇 2021年8月20日

相关推荐

发表回复

登录后才能评论