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/

这是什么顺序呢?好像也不是按照字母的排列的顺序?

 

既然不是,那就只好,找呀,找呀,直接我突然看到一篇帖子:

 

https://unix.stackexchange.com/questions/120143/how-is-the-order-in-which-tar-works-on-files-determined

 

说,查看不排序的时候是什么样的:

 

[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的顺序 (从左到右,从上倒下的顺序)

 

 

 

posted @ 2022-08-01 13:50  Zhai_David  阅读(1055)  评论(0编辑  收藏  举报