之前写了一点,在这:http://t.csdnimg.cn/BH7r6;接着写吧
不解包,查看包的内容
命令直接看图吧:
加上个v,就是这个效果:
如果打包时使用了-z选项,查看包内容的命令就是:
tar包名和待打包项均可以使用绝对路径或相对路径指定
可以看到/data目录下新增了t.tar.gz
还可以看到有提示曰“Removing leading `/'”,区别就是红箭头这里了:
相对路径,,略了吧,下文放个使用相对路径的就算是说了
如果想打包目录,和打包文件一样
就说打包红框里这4个吧:
打包命令:
看看文件内容:
噫,我为什么要写这一段,可能是因为搜索时看到有标题讲如何打包目录的帖子?
目录本质上也是个文件,只是别的文件保存文本或者二进制,目录保存的是目录项罢了;
所以,,,。。算了算了
使用-P和-p的效果
-P的含义是“打包时使用绝对路径名”
-p的含义是“保留文件权限”
总之,加了这两个选项打出来的包,放到另一个环境上(按下图所示的命令)解包,就可以做到解包得到的文件绝对路径、属主属组、权限与打包时的环境一致。
先上图吧,图后边有一个(笔者知道的)小坑,以及一点因为这个选项闹出乌龙的例子。
打包:
注意,这里不提示上文遇到过的“Removing leading `/'”了。
查看下压缩包内容:
如果我们把/tmp/t.tar.gz拿到另一个环境的/root/目录,只需要执行命令就是tar -Ppzxf /root/t.tar.gz,就可以看到有/data/txt目录以及其下有内容了。
这里有一个已知的小坑是:打包使用-p保留的属主属组,实际是保存了用户id和组id,
上文的文件属主属组都是root,所以没翻车;如果是个打包环境上有、但解包环境上没有的用户,效果就不会符合期望了。
这个自己试吧,我就不去弄了,因为我也是听同事说的遇到过类似的事情。
顺便说下因为-P闹出乌龙的事情。有一次开发的同学给了我一个压缩包让更到客户环境,并告诉了我解包命令;
我看到解包命令中包含-P,以为压缩包里就是包含绝对路径的,也没多看,就直接告诉了现场的同学使用tar -Ppzxf xxxx.tar.gz命令解压即可;
过一阵之后客户仍然报有问题,结果发现客户现场的资源根本就没被更新过。。欧买嘎的。。