2014年12月30日,今天着重谈谈tar。

来源:互联网 发布:信管专业考研方向知乎 编辑:程序博客网 时间:2024/06/06 05:07

TAR命令是把要求的每个文件夹和文件作为一个条目,进行打包,然后根据打包时就确定的条目路径,和(解包时的工作目录或指定的目录),进行解包。


for example:

有/dir1/dir2/dir3/file4,要打包file4.

如果工作目录在dir3下面,则命令为:

tar -cvf -tarfile1.tar file4

这时,file4的条目路径就是file。

如果在/tmp里面解压缩,不用-C指定工作目录,将得到/tmp/file4。


如果工作目录在dir2下面,则命令为:

tar -cvf -tarfile2.tar dir3/file4

这时,file4的条目路径就是dir3/file4。

如果在/tmp里面解压缩,不用-C指定工作目录,将得到/tmp/dir3/file4。

还有一种情况,如果命令包含了绝对路径,如:

tar -cvf tarfile3.tar /dir1/dir2/dir3/file4

这时有两个选项:

a、不用-P参数:条目路径将没有/目录;

b、加上-P参数,条目路径将包含根目录。这时如果解包时也加上-P,将覆盖源文件。


那倒底是怎么根据条目路径解包呢?是这样:开始已经说了,打包时是把每个文件夹和文件作为一个条目打包,然后解包也是一个一个的解。

凡是遇见没有的目录,就新建;有重复的目录,就合并放在一起。


要查看tar包里面的条目路径,用:

tar -tvf tarfile.tar


再说说--exclude=file:

用/dir1/dir2/dir3/来说:

file不仅排除dir3和dir3下面所有的文件名和文件夹名,也排除到dir3的路径,也就是说,如果file是“dir2”,那么将不会有任何文件打包。


0 0
原创粉丝点击