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
来查看压缩包里面的内容;