首先应该明确:Linux/Unix系统中,使用tar对文件打包时,一般不建议使用绝对路径。
通常是在两台环境相似的机器上进行同步复制的时候,才有需要使用绝对路径进行打包。使用绝对路径打包时如果不指定相应的参数,tar会产生一句警告信息:”tar: Removing leading `/’ from member names”,并且实际产生的压缩包会将绝对路径转化为相对路径。
很多客户在打压缩包时,没有注意压缩路径(文件夹、目录)的问题,结果在服务器解压缩后,发现文件夹嵌套很多层,还要重新移动文件,调整路径,很麻烦。
其实只要在打压缩包的时候,直接进入要打包的文件所在的目录,然后全选(windows)或使用通配符*(linux),再进行打包,打包的文件缩放的目的路径进行自定义,即可解决问题。
绝对路径(附带系统路径,从根目录开始):
tar -czvf backup.tar.gz /home/var/wwwroot/htdocs
这样打包下来,压缩包解压缩后,文件夹嵌套有很多层,解压缩后会是/home/var/wwwroot/htdocs/*的结果。
相对路径:
先进入要打包的目录 cd /home/var/wwwroot
然后 tar -czvf /backup/backup.tar.gz htdocs
这样打包出来,压缩包里面只有htdocs一级目录。
如果cd /home/var/wwwroot/htdocs
那么压缩时就要用通配符:tar -czvf /backup/backup.tar.gz *