linux之归档压缩那点事

文章目录

  • gzip
  • bzip2
  • xz
  • tar

Linux 支持的压缩算法非常多,且不同的算法都有对应的命令。 所以在解压缩文件时,就需要知道该文件是由哪种压缩算法生成的,在这个时候,就要根据压缩文件扩展名来选择了,下表列出了几种常见的压缩文件扩展名及对应的算法。

扩展名 算法 备注
*.Z compress,比较早的压缩算法,现在已经很少使用了 -
*.gz gzip,比较常用的压缩方法,由GNU开发,取代了 compress 1. 只能压缩文件
2. 压缩后,源文件会被删除
3. 解压缩后,压缩文件会被删除
*.bz2 bzip2,比较常用的压缩方法,压缩率比gzip高,由GNU开发,准备用来取代gzip,目前两者都很流行 1. 只能压缩文件
2. 压缩后,源文件会被删除
3. 解压缩后,压缩文件会被删除
*.xz xz ,比gzipbzip2压缩比都要搞的压缩算法 1. 只能压缩文件
2. 压缩后,源文件会被删除
3. 解压缩后,压缩文件会被删除
*.tar - 可以对目录和文件进行归档,没有进行压缩
.tar.gz tar归档文件使用gzip算法压缩 -
.tar.bz2 tar归档文件使用bzip2算法压缩 -
.tar.xz tar归档文件使用xz算法压缩 -
*.zip zip , 既可以做归档又可以做压缩,centos 中需要单独安装,使用场景比较少 可以对目录和文件进行归档和压缩

gzip

gunzip命令用于解压缩。

zcat命令用于查看gzip压缩后的文件,若压缩文件特别大,zcat会特别慢。

gzip命令用于压缩文件,命令格式为gzip [OPTION] file...

选项 作用
-d 解压缩gzip压缩后的文档,相当于gunzip命令
-c, --stdout 1. 当压缩的时候,用于保留源文件,使用该选项可以将压缩结果输出,默认是输出到标准输出,可以使用io重定向到一个目标文件
2. 当和-d一起用于解压缩的时候,用于保留压缩文件,该选项可以将解压缩结果输出,,默认是输出到标准输出,可以使用io重定向到一个目标文件
-# 指定压缩比,默认是6,可以选范围1-9,数字越大,资源小号越多,压缩后的文件越小
-k 可以用于检验压缩文件的一致性
-v 可以显示出源文件和压缩文件的压缩比
-f,–force 强制覆盖同名目标文件
[vagrant@nexus3 gzipdemo]$ ls
yumdb
[vagrant@nexus3 gzipdemo]$ gzip yumdb 
[vagrant@nexus3 gzipdemo]$ ls
yumdb.gz
[vagrant@nexus3 gzipdemo]$ gzip -d yumdb.gz 
[vagrant@nexus3 gzipdemo]$ ls
yumdb
[vagrant@nexus3 gzipdemo]$ gzip -c yumdb > yumdbc.gz
[vagrant@nexus3 gzipdemo]$ ls
yumdb  yumdbc.gz
[vagrant@nexus3 gzipdemo]$ gzip -v yumdb 
yumdb:	 78.2% -- replaced with yumdb.gz
[vagrant@nexus3 gzipdemo]$ ls
yumdbc.gz  yumdb.gz
[vagrant@nexus3 gzipdemo]$ gzip -dc yumdb.gz > ./yumdb_optionc
[vagrant@nexus3 gzipdemo]$ ls
yumdbc.gz  yumdb.gz  yumdb_optionc

bzip2

bunzip2命令用于解压缩。

bzcat命令用于查看bzip2压缩后的文件,若压缩文件特别大,bzcat会特别慢。

bzip2命令用于压缩文件,命令格式为bzip2 [OPTION] file...

选项 作用
-d 解压缩bzip2压缩后的文档,相当于bunzip2命令
-c, --stdout 1. 当压缩的时候,用于保留源文件,使用该选项可以将压缩结果输出,默认是输出到标准输出,可以使用io重定向到一个目标文件
2. 当和-d一起用于解压缩的时候,用于保留压缩文件,该选项可以将解压缩结果输出,,默认是输出到标准输出,可以使用io重定向到一个目标文件
-# 指定压缩比,默认是6,可以选范围1-9,数字越大,资源小号越多,压缩后的文件越小
-t 可以用于检验压缩文件的一致性
-v 可以显示出源文件和压缩文件的压缩比
-k, --keep 1. 当压缩的时候,用于保留源文件,与-c不同的在于不会将结果输出到标准输出
2. 当和-d一起用于解压缩的时候,用于保留压缩文件,与-c不同的在于不会将结果输出到标准输出
-f,–force 强制覆盖同名目标文件

xz

xz命令用于解压缩。

xzcat命令用于查看xz压缩后的文件,若压缩文件特别大,bzcat会特别慢。

xz命令用于压缩文件,命令格式为xz [OPTION] file...xz命令的选择同bzip2

tar

归档用于将众多的文件/目录归档为一个文件。命令格式:tar [OPTION...] [FILE]...

归档文件:tar [-j|-J|-z] [cv] [-f 归档文件名] file...

查看归档文件: tar [-j|-J|-z] [tv] [-f 归档文件名]

释放归档文件:tar [-j|-J|-z] [xv] [-f 归档文件名] [-C 释放的目标路径]

选项 作用
[-j|-J|-z] 指定使用那种压缩算法:
-j 使用bzip2进行压缩/解压缩,文件名称*.tar.bz2
-J使用xz进行压缩/解压缩,文件名称*.tar.xz
-z使用gzip进行压缩/解压缩,文件名称*.tar.gz
[cv|tv|xv] v表示查看归档/释放归档的过程
cv表示进行归档
tv表示查看归档文件
xv表示释放归档文件
-f 后面要接归档文件名
-C, --directory=DIR 指定归档文件释放的目标路径
-r, --append append files to the end of an archive
-d, --diff, --compare find differences between archive and file system
-u, --update only append files newer than copy in archive
–exclude 打包目录的时候,略过指定的部分
tar -cvzf /tmp/system.tar.gz --exculde=/etc/root/yum.d --exclude=/etc/root/xxx.rc /etc/root
–newer-mtime --newer-mtime=2008/09/29
–newer-ctime --newer-ctime=2008/06/03
–overwrite overwrite existing files when extracting

你可能感兴趣的:(Linux)