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

     

  • 相关阅读:
    07-图5 Saving James Bond
    07-图4 哈利·波特的考试(25 分)多源最短路,邻接矩阵
    最短路径问题
    最小生成树
    06-图3 六度空间(30 分)
    06-图2 Saving James Bond
    06-图1 列出连通集(25 分)邻接矩阵

    05-树9 Huffman Codes(30 分)
    集合及运算
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/16539980.html
Copyright © 2020-2023  润新知