压缩和解压缩

​ 为什么需要这部分?因为在工作中我们使用更多的是命令行处理。不可能把文档发到自己电脑上压缩后再上传上去,这对数据来说是十分危险的。所以为了数据安全也为了审计方便,我们将使用命令行来完成压缩和解压缩

注:Linux上的压缩工具只会压缩文件,不会压缩目录。如果想压缩目录需要先打包

zip可以直接压缩目录,但会丢失目录权限,元数据等信息

compress 和 uncompress

​ 注:此工具来自于ncompress包,此工具目前以及很少使用

对应的文件是.Z后缀

1
2
3
4
5
6
7
8
9
10
11
#压缩
compress [选项] [文件名]
#解压
uncompress [选项] [文件名]

#常用选项
-d #解压缩,相当于uncompress
-c #结果输出至标准输出,不删除原文件(默认压缩后删除原文件)
-f #覆盖已存在的目标文件
-v #显示过程
-r #递归压缩目录中的所有文件

gzip 和 gunzip

​ 来自于 gzip 包

对应的文件是.gz后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#压缩
gzip [选项] [文件名]
#解压
gunzip [选项] [文件名]

#常用选项
-c|--stdout #将压缩数据输出到标准输出中,并保留原文件
-d|--decompress #解压缩,相当于gunzip
-f|--force #覆盖已存在目标文件
-k|--keep #保留原文件
-l|--list #显示原文件大小,压缩文件大小,压缩比,压缩前文件名
-q|--quiet #安静模式,忽略警告
-r|--recursive #递归压缩目录内所有文件
-S|--suffix=SUF #指定压缩文件后缀
-t|--test #测试,检测压缩文件是否完整
-v|--verbose #显示过程
-1|--fast #最快压缩,压缩比最低,但压缩速度快
-9|--best #最好压缩,压缩比最高,但压缩速度慢
-N #指定压缩登记,取值为1-9之间,默认6

bzip2 和 bunzip2

​ 来自于 bzip2 包

对应的文件是.bz2后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#压缩
bzip2 [选项] [文件名]
#解压
bunzip2 [选项] [文件名]

#常用选项
-d|--decompress #解压缩,相当于bunzip2
-z|--compress #强制压缩
-k|--keep #保留原文件
-f|--force #覆盖已存在的目标文件
-t|--test #测试,检测压缩文件是否完整
-c|--stdout #将压缩数据输出到标准输出中,并保留原文件
-q|--quiet #静默模式,忽略警告
-v|--verbose #显示过程
-N #指定压缩等级,取值为1-9之间,默认9
--fast #同 -1
--best #同 -9

xz 和 unxz

​ 来自于 xz 包

对应的文件是 .xz 后缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#压缩
xz [选项] [文件名]
#解压
unxz [选项] [文件名]

#常用格式
-z|--compress #强制压缩
-d|--decompress #解压缩,相当于unxz
-t|--test #测试,检测压缩文件是否完整
-l|--list #查看压缩文件相关信息
-k|--keep #保留原文件
-f|--force #覆盖已存在目标文件
-c|--stdout #将压缩数据输出到标准输出中,并保留原文件
-T|--threads=NUM #开多线程,默认为1
-q|--quiet #安静模式,忽略警告
-v|--verbose #显示过程
-N #指定压缩登记,取值为1-9之间,默认为6

zip 和 unzip

​ zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,比如所有者和组信息

分别来自于 zip 和 unzip 包

对应的文件是 .zip 后缀

1
2
3
4
5
6
7
8
9
10
11
12
#压缩
zip [选项] [压缩包输出目录] [压缩的文件目录]
#解压
unzip [选项] [压缩包路径] [解压文件路径]

#zip常用选项
-f #更换较新的文件到压缩文件内
-u #如果压缩包内有,就更新文件。如果没有,就追加进压缩包
-d #从压缩包内删除指定的文件
-m #将文件压缩之后,删除原始文件
-r #递归压缩目录
-j #只保存文件名称及其内容,而不存放任何目录名称