今天在使用tar进行打包时,发现报了‘从成员名中删除开头的“/”’的错误。我使用的打包语句如下:

 1[root@bj~]# tar czvf test.tar.gz /root/tomcat/
 2tar: 从成员名中删除开头的“/”
 3/root/tomcat/
 4/root/tomcat/tomcat_spider
 5/root/tomcat/tomcat_generator
 6/root/tomcat/tomcat_cms
 7/root/tomcat/tomcat_biz
 8/root/tomcat/tomcat_mgrab
 9/root/tomcat/tomcat_register
10/root/tomcat/tomcat_expert
11/root/tomcat/tomcat_monitor
12/root/tomcat/tomcat_generator.bak
13/root/tomcat/tomcat_sgapp
14/root/tomcat/tomcat_enterprise
15/root/tomcat/tomcat_jjhadmin
16/root/tomcat/tomcat_passport
17/root/tomcat/tomcat_usercenter
18/root/tomcat/tomcat_mws
19/root/tomcat/tomcat_crawl
20/root/tomcat/tomcat_bbs
21/root/tomcat/tomcat_feedback
22/root/tomcat/tomcat_search
23/root/tomcat/tomcat_comment
24/root/tomcat/tomcat_register32

于是赶快的看tar的help手册和man手册。发现使用-P(大写)参数后可以解决这个问题:使用后,果然没再报错:

 1[root@bj ~]# tar czPvf test.tar.gz /root/tomcat/
 2/root/tomcat/
 3/root/tomcat/tomcat_spider
 4/root/tomcat/tomcat_generator
 5/root/tomcat/tomcat_cms
 6/root/tomcat/tomcat_biz
 7/root/tomcat/tomcat_mgrab
 8/root/tomcat/tomcat_register
 9/root/tomcat/tomcat_expert
10/root/tomcat/tomcat_monitor
11/root/tomcat/tomcat_generator.bak
12/root/tomcat/tomcat_sgapp
13/root/tomcat/tomcat_enterprise
14/root/tomcat/tomcat_jjhadmin
15/root/tomcat/tomcat_passport
16/root/tomcat/tomcat_usercenter
17/root/tomcat/tomcat_mws
18/root/tomcat/tomcat_crawl
19/root/tomcat/tomcat_bbs
20/root/tomcat/tomcat_feedback
21/root/tomcat/tomcat_search
22/root/tomcat/tomcat_comment
23/root/tomcat/tomcat_register32<

造成该问题的原因是因为使用相对路径和绝对路径引起的。另外还有一种解决方法是,使用相对路径:

1cd /root
2tar czvf tomcat.tar.gz tomcat/

注:相对和绝对路径报错是对于后面的备份目录来说的,而前面的包名称不受此影响。我们可以使用tar czvf /opt/tomcat.tar.gz tomat/同样是不会报错的。