Skip to main content

Shell压缩命令

1. Overview

归档(Archiving), 也称打包,是指将多个文件或目录打包成一个文件,以便于传输或备份。归档文件没有经过压缩。

压缩(Compression), 也称压缩,是指将多个文件或目录打包成一个文件,以便于传输或备份。压缩文件经过压缩。

归档工具为tar,zip、gzip、bzip2等。

1.1 tar

tar命令是linux下最常用的归档工具,它提供了非常丰富的功能,可以打包、解包。

1.1.1 打包:

# -c 将多个文件或目录进行打包
# -f 指定打包后的文件名
# -v 显示打包过程
# -A 追加tar到归档文件
tar -cvf <file> <dir>
tar -cvf <file> <dir> # 指定包名
tar -cvf ana.tar anaconda-ks.cfg /tmp/ # 多个文件和目录打包

1.1.2 解包:

# -x 将tar解包
# -f 指定tar文件
# -v 显示解包过程
# -t 只查看tar包中的文件
# -C 指定解包后的目录
tar -xvf <file>

1.1.3 gzip

gzip是一种压缩工具,它提供了非常丰富的功能,可以压缩、解压。扩展名为".gz"。

备注:gzip 命令只能用来压缩文件,不能压缩目录,即使指定了目录,也只能压缩目录内的所有文件

# -c 将多个文件或目录进行压缩
# -f 指定压缩后的文件名
# -v 显示压缩过程
# -A 追加gzip到归档文件
gzip [选项]源文件
# 备注:命令中的源文件,当进行压缩操作时,指普通文件;当进行解压缩操作时,指压缩文件

1.1.4 gunzip

gunzip 是一个使用广泛的解压缩命令,它用于解压被 gzip 压缩过的文件(扩展名为 .gz)

对于解压被gzip压缩过的文件,可以使用gzip -d 压缩包命令进行解压。

gunzip [选项]文件
# -r 递归解压
# -c 将压缩包内容输出到屏幕
# -f 强制解压
# -l 列出压缩文件内容
# -v 显示解压过程
# -t 测试压缩文件

1.1.5 bzip2

bzip2是一种压缩工具,同gzip命令类似,它提供了非常丰富的功能,可以压缩、解压。扩展名为".bz2"。

# -d 解压
# -k bzip2 在压缩或解压缩任务完成后,会删除原始文件,若要保留原始文件,可使用此选项
# -f bzip2 在压缩或解压缩时,若输出文件与现有文件同名,默认不会覆盖现有文件,若使用此选项,则会强制覆盖现有文件
# -t 测试压缩包文件的完整性
# -v 压缩或解压缩文件时,显示详细信息
# 数字 用于指定压缩等级,-1 压缩等级最低,压缩比最差;-9压缩比最高
bzip2 [选项]源文件
bunzip2 install.log.bz2 # 解压
bunzip2 -r test/ # 解压目录下内容
# 备注:命令中的源文件,当进行压缩操作时,指普通文件;当进行解压缩操作时,指压缩

1.1.6 zip

zip是一种压缩工具,它提供了非常丰富的功能,可以压缩、解压。扩展名为".zip"。

# -r 递归压缩
# -m 压缩后删除源文件
# -v 显示压缩过程
# -q 静默压缩,不显示压缩过程
zip [选项]压缩包名 待压缩文件
zip -r ana.zip anaconda-ks.cfg /tmp/ # 多个文件和目录打包

1.1.7 unzip

unzip 命令可以查看和解压缩 zip 文件,该命令的基本格式如下:

# -d 目录名:将压缩文件解压到指走目录
# -n 不覆盖已存在的文件
# -o 覆盖已存在的文件
# -v 显示解压过程
# -t 测试压缩包文件的完整性
# -x 文件列表:解压文件,但不包含文件列表中指定的文件
unzip [选项]压缩包名

1.2 同时打包、压缩

1.2.1 tar.gz & tar.bz2(重点)

打包命令和压缩命令可以同时使用,格式:

tar[选项] 压缩包 源文件或目录
# -z 压缩、解压缩;压缩包扩展名为.gz
# -j 压缩、解压缩;压缩包扩展名为.bz2
# 4种常用选项参数:
# 解压缩:-jxvf, -zxvf
# 压缩:-jcvf, -zcvf

压缩".tar.gz"格式:

tar -zcvf tmp.tar.gz /tmp/ # 把/temp/目录直接打包压缩为".tar.gz"格式,通过"-z"来识别格式,"-cvf"和打包选项一致

压缩".tar.bz2"格式

tar -jcvf tmp.tar.bz2 /tmp/ # 把/temp/目录直接打包压缩为".tar.bz2"格式,通过"-j"来识别格式,"-cvf"和打包选项一致

解压".tar.gz"格式:(重点)

tar -zxvf tmp.tar.gz # 解压".tar.gz"格式文件

解压".tar.bz2"格式:(重点)

tar -jxvf tmp.tar.bz2 # 解压".tar.bz2"格式文件