简介

Windows系统中,当文件过多的时候为了统一管理,需要将多个文件进行压缩处理。
Unix/Linux系统中也提供了相似的方式,分为两种操作模式:

  • 归档文件:将多个文件整理成一个文件,但不是压缩,称为打包文件
  • 压缩文件:将归档为文件进行压缩处理

为什么要区分这两个概念呢?
这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩!

归档文件(打包)

tar

多个文件的归档(打包)操作,将多个文件整理成一个文件

Linux 下最常用的打包程序就是 tar 了,使用tar程序打出来的包我们常称为 tar包,tar包文件的命令通常都是以 .tar 结尾的。生成tar包后,就可以用其它的程序来进行压缩

常用参数:

  • -v : 显示操作信息
  • -f : 不进行交互操作,直接执行
  • -x : 拆包操作,将一个打包文件拆分成多个原始文件
  • -c : 打包操作,将多个原始文件打包成一个文件
  • -t : 查看操作,查看一个打包文件中包含哪些文件
  • -r : 添加操作,添加文件到已经打包的文件中
  • -z : 支持gzip解压文件
  • -j : 支持bzip2解压文件
# 将多个文件打包成一个文件
tar -cvf cs.tar cs1.py cs2.py ..

# 拆分打包的文件
tar -xvf cs.tar

# 解压 .gz 文件同时拆包
tar -zxvf cs.tar.gz

# 查看包中文件信息
tar -tvf cs.tar

# 添加文件到包中
tar -rvf cs.tar cs3.py

压缩 & 解压缩

gzip

gzip 是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出 .gz 的扩展名

# 压缩文件
gzip cs.tar

# 解压文件
gzip -d cs.tar.gz

# 列出压缩文件信息
gzip -l cs.tar.gz

bzip2

bzip2 采用新的压缩演算法,压缩效果比传统的LZ77/LZ78 压缩演算法来得好。文件经过它压缩后名称后边会多出 .bz2 的扩展名

# 压缩文件
bzip2 cs.tar

# 解压文件
bzip2 -d cs.tar.bz2

zip

和 Windows 操作系统交互较多的时候使用的压缩格式,压缩后的文件后缀名为 .zip

# 压缩文件
zip cs.zip cs.tar

# 解压文件
unzip cs.zip