tar压缩目录或者文件时的顺序是什么?解压的顺序是什么?
问你一个问题:tar命令在对文件进行压缩和解压的时候,是按照什么顺序进行的呢?
如果你说,没有注意过,或者说不知道,那下面的部分,一定能够让你看到更多的细节······
几天前,在做一个项目的适配,发现同样的对于一个进行压缩和解压,但是在解压的时候,我们的解压缩顺序却截然不同,一个是这样:
另一个,是这样:
想了想,是按照字母的顺序进行解压的吗?
但是看着第2个,又好像不像啊。但是,为啥2个解压的顺序完全的不同呢。于是,我就百度了下,tar在压缩的时候是不是有顺序呢,进而导致解压缩有顺序······查了好久······
直到一个瞬间,我感觉突然惊醒,我压缩的时候是不是可以指定压缩的目录的顺序呢,这个顺序会不会有什么影响,于是,我做了下面的尝试:
[root@nctest-snap-test-02 ~]# tar -zcvf test.tar.gz ypr/Docker ypr/Plugin/ ypr/Maven/ ypr/Tools/ ypr/Application/ ypr/Docker/ ypr/Plugin/ ypr/Maven/ ypr/Tools/ ypr/Application/
也就是,在压缩的时候,不是默认的安装ypr目录下的字母顺序进行的,而是按照指定的目录顺序,然后尝试解压:
[root@nctest-snap-test-02 ~]# tar -zxvf test.tar.gz ypr/Docker/ ypr/Plugin/ ypr/Maven/ ypr/Tools/ ypr/Application/
发现,果然解压的顺序和压缩的顺序是一样的。
再来看看,直接对ypr目录的解压:
[root@nctest-snap-test-02 ~]# tar -zcvf test.tar.gz ypr ypr/ ypr/Application/ ypr/Docker/ ypr/Tools/ ypr/Maven/ ypr/Plugin/
这是什么顺序呢?好像也不是按照字母的排列的顺序?
既然不是,那就只好,找呀,找呀,直接我突然看到一篇帖子:
说,查看不排序的时候是什么样的:
[root@nctest-snap-test-02 ypr]# ls -U
Application Docker Tools Maven Plugin
[root@nctest-snap-test-02 ypr]#
那么压缩的时候,其实就是按照这个顺序进行的。
所以:ls -U 或者 ls -U.就是目录中文件的顺序,压缩也是走这个顺序的。
到了这里,关于tar的压缩顺序,我们已经清晰了。
一个天天的在用的tar命令,还有如此多的细节直接我关注,美~
注意:ls -U的顺序 (从左到右,从上倒下的顺序)