欢迎各位兄弟 发布技术文章
这里的技术是共享的
今天在使用tar进行打包时,发现报了‘从成员名中删除开头的“/”’的错误。我使用的打包语句如下:
[root@bj~]# tar czvf test.tar.gz /root/tomcat/ tar: 从成员名中删除开头的“/” /root/tomcat/ /root/tomcat/tomcat_spider /root/tomcat/tomcat_generator /root/tomcat/tomcat_cms /root/tomcat/tomcat_biz /root/tomcat/tomcat_mgrab /root/tomcat/tomcat_register /root/tomcat/tomcat_expert /root/tomcat/tomcat_monitor /root/tomcat/tomcat_generator.bak /root/tomcat/tomcat_sgapp /root/tomcat/tomcat_enterprise /root/tomcat/tomcat_jjhadmin /root/tomcat/tomcat_passport /root/tomcat/tomcat_usercenter /root/tomcat/tomcat_mws /root/tomcat/tomcat_crawl /root/tomcat/tomcat_bbs /root/tomcat/tomcat_feedback /root/tomcat/tomcat_search /root/tomcat/tomcat_comment /root/tomcat/tomcat_register32
于是赶快的看tar的help手册和man手册。发现使用-P(大写)参数后可以解决这个问题:使用后,果然没再报错:
[root@bj ~]# tar czPvf test.tar.gz /root/tomcat/ /root/tomcat/ /root/tomcat/tomcat_spider /root/tomcat/tomcat_generator /root/tomcat/tomcat_cms /root/tomcat/tomcat_biz /root/tomcat/tomcat_mgrab /root/tomcat/tomcat_register /root/tomcat/tomcat_expert /root/tomcat/tomcat_monitor /root/tomcat/tomcat_generator.bak /root/tomcat/tomcat_sgapp /root/tomcat/tomcat_enterprise /root/tomcat/tomcat_jjhadmin /root/tomcat/tomcat_passport /root/tomcat/tomcat_usercenter /root/tomcat/tomcat_mws /root/tomcat/tomcat_crawl /root/tomcat/tomcat_bbs /root/tomcat/tomcat_feedback /root/tomcat/tomcat_search /root/tomcat/tomcat_comment /root/tomcat/tomcat_register32
造成该问题的原因是因为使用相对路径和绝对路径引起的。另外还有一种解决方法是,使用相对路径:
cd /root tar czvf tomcat.tar.gz tomcat/
注:相对和绝对路径报错是对于后面的备份目录来说的,而前面的包名称不受此影响。我们可以使用tar czvf /opt/tomcat.tar.gz tomat/同样是不会报错的。