Linux中的 打包、解压缩 命令 .tar.gz .tar.bz2 .tar.xz(无废话)

.zip格式的文件在Windows和Linux下都能使用;

Linux中,打包解压缩 的格式有:.tar、.gz、.bz2、xz、.zip等,常用的是 .zip、.tar.gz

  • .gz:解压缩,由gzip压缩工具压缩的文件。
  • .bz2:解压缩,由bzip2压缩工具压缩的文件。
  • .tar:打包,由tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)。

  • .tar.gz:先由tar打包,然后再由gzip压缩。(最常用)
  • .tar.bz2:先由tar打包,然后再由bzip2压缩。
  • .tar.xz:先由tar打包,然后再xz压缩。

 

gzip (解压缩) .tar.gz    -z

.gz
压缩 gzip -k 1.txt 2.txt 得到 1.txt.gz 2.txt.gz ,-k 保留原来文件
解压 gzip -d -k 1.txt.gz -d 表示解压,-k 保留原来文件

注意:gzip 不能直接压缩 目录 或 多个文件,需先打包成一个文件,再压缩成 .tar.gz 格式;

.tar.gz
先打包 合N为1:tar cvf archive.tar 1.txt 2.txt 得到 archive.tar ,在用压缩命令 gzip -k archive.tar 即可得到 archive.tar.gz
压缩 tar -czvf archive.tar.gz ./资料/ 得到 archive.tar.gz
解压 tar -xzvf archive.tar.gz -C ~/ -C 解压到 ~/ 中

 

bzip2 (解压缩) .tar.bz2    -j

apt-get install bzip2 -y

.bz2
压缩 bzip2 -k 1.txt 2.txt          -z 表示压缩,默认可不写,-k 保留原来文件, 结果:1.txt.bz2 和 2.txt.bz2
解压 bzip2 -d -k 1.txt.bz2       -d 表示解压,-k 保留原来文件

注意:bzip2 不能直接压缩 目录 多个文件,需先打包成一个文件,再压缩成 .tar.bz2 格式;

.tar.bz2
先打包 合N为1:tar cvf archive.tar 1.txt 2.txt      得到 archive.tar ,在用压缩命令 bzip2 -k archive.tar 即可得到 archive.tar.bz2

压缩 tar -cjvf archive.tar.bz2 ./资料/      得到 archive.tar.bz2
解压 tar -xjvf archive.tar.bz2 -C ~/       -C 解压到 ~/ 中

 

xz (解压缩) .tar.xz    -J

.xz
压缩:xz -z -k 1.txt 2.txt -z 表示压缩,默认可不写,-k 保留原来文件, 结果:1.txt.bz2 和 2.txt.bz2 解压:xz -d 1.txt.xz 解压

.tar.xz
通过管道符命令打包并压缩:tar cvf - 1.txt 2.txt | xz >  a.tar.xz 先打包成 -.tar 再通过管道符传递给下一个命令参数运行压缩,得到 a.tar.xz
压缩 tar -cJvf archive.tar.xz ./资料/ 得到 archive.tar.xz
解压 tar -xJvf archive.tar.xz -C ~/ -C 解压到 ~/ 中

注意:xz 不支持压缩 目录

 

tar 打包工具

把文件和目录打包成一个文件,方便复制或者移动。

格式为 tar [-zjxcvfpP] filename tar

  • -z:表示同时用gzip压缩      .tar.gz
  • -j:表示同时用bzip2压缩    .tar.bz2
  • -J:表示同时用xz压缩         .tar.xz
  • -x:表示解包或者解压缩。
  • -c:表示建立一个tar包或者压缩文件包。
  • -t:表示查看tar包里的文件。
  • -v:表示 可视化。
  • -f:后面跟文件名(即-f filename,表示压缩后的文件名为filename,或者解压文件filename。)需要注意的是,在多个参数组合的情况下,请把-f参数写到最后面。
  • -C:后面跟解压到哪个目录中(目录必须存在)
  • -p:表示使用原文件的属性,即压缩前文件是什么属性压缩后就还什么属性。(不常用)
  • -P:表示可以使用绝对路径。(不常用)
  • --exclude filename:表示在打包或压缩时,不要将filename文件包括在内。(不常用)
cd ~
touch 1.txt 2.txt 3.txt 4.txt
yum install tree -y            // 安装tree命令,用来查看目录树形结构  ubuntu/debian的命令: apt-get install -y tree
tree .
打包 tar -cvf test111.tar test111/ 解包 tar -xvf test111.tar

不管是打包还是解包,tar都不会删除原来的文件的

查看压缩包内的内容:

tar -tf test111.tar

 

打包的同时使用压缩

同时操作支持:gzip压缩、bzip2压缩和xz压缩

.tar.gz    -z

-z 可以压缩成 gzip 格式的文件

tar -zcvf test111.tar.gz test111   打包压缩 test111目录
tar -zxvf test111.tar.gz      解包解压缩 test111.tar.gz

tar -ztxv test111.tar.gz 查看

 

.tar.bz2    -j

-j 可以压缩成 bzip2 格式的文件

tar -jcvf test111.tar.bz2 test111   打包压缩 test111目录
tar -jxvf test111.tar.bz2      解包解压缩 test111.tar.bz2

tar -jtvf test111.tar.bz2 查看

 

.tar.xz    -J

同理,这里不多做介绍了...

 

Zip 压缩

.zip 压缩包在Windows和Linux中都比较常用。

安装:

rehat/centos
yum install -y zip yum install -y unzip

debian/ubuntu
apt-get install -y zip
apt-get install -y unzip

压缩 文件 和 目录:

压缩文件
zip a.zip 1.txt 将 1.txt 压缩成 a.zip

解压目录
zip a.zip test111/ 只压缩 test111 这个目录,目录里面的文件和子目录都不压缩 zip a.zip test111/* 只将 test111 目录下的文件和目录压缩成 a.zip ,但不包含子目录的内的所有文件和目录;
zip -r a.zip test11/ 递归 test111 下的所有文件和目录 进行压缩; 使用这个!!!

格式:zip后面先跟目标文件名,即压缩后的自定义压缩包名,然后跟要压缩的文件或者目录。

思考:在压缩目录时,如果只写目录名(比如 zip a.zip folder/ ),会发生什么?若目录下还有二级目录甚至更多级目录时,能否也一并压缩二级目录下的文件呢?

答:即使 folder 里面有文件和N级目录,也不会打包这些,而是打包这个 folder 本身(不包括里面的文件和目录);

如果想要一并压缩目录下的所有文件和目录(包括多层目录),必须加上 -r 选项:

zip -r a.zip folder/

zip的解压

unzip a.zip

 查看zip

unzip -l a.zip

 

zcat 和 bzcat 查看压缩包内的内容

上面介绍了使用-t选项可以查看tar压缩包的文件列表(即:tar -tf 1.tar)。对于gzip2或者bzip2压缩格式,可以用:

zcat 11.gz
bzcat 22.bz2

来查看压缩包里面的内容;

posted @ 2022-04-06 23:54  醉马踏千秋  阅读(5112)  评论(0编辑  收藏  举报