8.1 tar打包工具

tar本身就是一个打包工具,可以把目录打包成一个文件,它把所有文件整合成一个大文件,方便复制或者移动。该命令的格式为tar [-zjxcvfpP] filename tar,它有多个选项。

  • **-c**:表示建立一个tar包或者压缩文件包。
  • **-x**:表示解包或者解压缩。
  • **-v**:表示可视化。
  • **-f**:后面跟文件名(即-f filename,表示压缩后的文件名为filename,或者解压文件filename。需要注意的是,如果是多个参数组合的情况下,请把-f参数写到最后面。
  • **-t**:查看tar包中的文件。
  • **-z**:表示同时用gzip压缩。
  • **-j**:表示同时用bzip2压缩。
  • **-J**:表示同时用xz压缩。
    1. # tar -cvf test111.tar test111
    2. test111/
    3. test111/2.txt
    4. test111/1.txt
    5. # ls
    6. 1.txt test111 test111.tar
    可以使用 **-tf**查看tar包中的文件
    # tar -tf test111.tar
    test111/
    test111/2.txt
    test111/1.txt
    
    使用tar命令打包后,原文件不会消失。也可以同时打包多个文件或文件夹(多个文件名之间使用空格分隔)。
    tar命令不仅可以打包目录,也可以打包文件,打包时可不加-v选项,表示不可视化。示例命令如下:
    # rm -f test111.tar
    # tar -cf test.tar test111 1.txt
    # ls
    1.txt  test111  test.tar
    
    tar命令还可以解开打包文件。示例命令如下:
    # tar xvf test111.tar
    test111/
    test111/2.txt
    test111/1.txt
    a.txt
    

8.2 打包的同时压缩

Linux下最常见的压缩文件通常都是.tar.gz格式的,下面介绍Linux下常见的后缀名所对应的压缩工具。

  • .tar.gz:可以理解为先由tar打包,然后再由gzip压缩。
  • .tar.bz2:可以理解为先由tar打包,然后再由bzip2压缩。
  • .tar.xz:可以理解成先由tar打包,然后再xz压缩。

    8.2.1 打包的同时使用gzip压缩

    tar命令非常好用的一个功能就是可以在打包时直接压缩,它支持gzip压缩、bzip2压缩和xz压缩。使用-z选项,可以压缩成gzip格式的文件,示例命令如下:
    # tar -czvf  test111.tar.gz test111
    test111/
    test111/2.txt
    test111/1.txt
    # ls
    1.txt  test111  test111.tar.gz  test.tar
    
    使用-tf选项,可以查看包或者压缩包的文件列表,示例命令如下:
    # tar -tf test111.tar.gz
    test111/
    test111/2.txt
    test111/1.txt
    # tar -tf test.tar
    test111/
    test111/2.txt
    test111/1.txt
    1.txt
    
    使用-zxvf选项,可以解压.tar.gz格式的压缩包,示例命令如下:
    # rm -rf test111
    # ls
    1.txt  test111.tar.gz  test.tar
    # tar -zxvf test111.tar.gz
    test111/
    test111/2.txt
    test111/1.txt
    # ls
    1.txt  test111  test111.tar.gz  test.tar
    

    8.2.2 打包的同时使用bzip2压缩

    和gzip压缩不同的是,这里使用-cjvf选项来压缩,压缩过程如下:
    #  tar -cjvf test111.tar.bz2 test111
    test111/
    test111/2.txt
    test111/1.txt
    # ls
    1.txt  test111  test111.tar.bz2  test111.tar.gz  test.tar
    
    使用-tf选项来查看压缩包的文件列表,示例命令如下:
    # tar -tf test111.tar.bz2
    test111/
    test111/2.txt
    test111/1.txt
    
    使用-jxvf选项来解压.tar.bz2格式的压缩包,示例命令如下: ```

    tar -jxvf test111.tar.bz2

    test111/ test111/2.txt test111/1.txt

```