简介
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