一、压缩的原理是什么呢?
目前我们使用的计算机系统是使用bytes单位计量的,但实际上,计算机中最小的计量单位是bits,我们知道1byte=8bits,那么我们记录数字1的时候是如何记录的?
我们可以这样理解,一个空格代表一个bit,1byte就是8个空格,当我们在存放数字1的时候,根据二进制计数,在这里存放的是00000001。这里有7个0,实际上前面的7个0都是空的,但是由于要满足我们操作系统的存储方式,必须以8位为单位存储,所以会造成一些空间没有填满。压缩就是将这些没有用的空间减掉,让文件的占用空间变小,这就是压缩技术。
二、常见的压缩命令
1、zip命令
(1)、zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有" . zip "扩展名的压缩文件。
(2)、语法
SYNOPSIS
zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b
path] [-n suffixes] [-t date] [-tt date] [zipfile [file ...]]
[-xi list]
(3)、选项
-A | 调整可执行的自动解压文件 |
---|---|
-b<工作目录> | 指定暂时存放文件的目录 |
-c | 替每个被压缩的文件加上注释 |
-d | 从压缩文件内删除指定的文件 |
-D | 压缩文件内不建立目录名称 |
-f | 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中 |
-F | 尝试修复已损坏的压缩文件 |
-g | 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件 |
-h | 在线帮助 |
-L | 显示版本信息 |
-r | 递归处理,将指定目录下的所有文件和子目录一并处理 |
… …
选项太多 ,常用的就这些,剩下的大家可以自行了解
给大家举个例子加深印象
1、压缩 file3 文件
2、将当前目录下的所有文件和文件夹压缩成 test.zip 文件
# zip -r test.zip ./*
3、将 test1 下的所有文件压缩成 test1.zip
2、gzip命令
(1)、gzip是在Linux系统中经常使用的一个对文件进行压缩的命令,文件经它压缩过后,其名称会多出" . gz "扩展名。gzip不仅可以用来压缩大的,较少使用的文件以节省磁盘空间,还可以与 tar 命令一起构成Linux操作系统中比较流行的压缩文件格式。使用它既方便又好用。
(2)、语法
SYNOPSIS
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
(3)、选项
- a | 使用ASCII文字模式 |
---|---|
- f | 强制压缩文件。不理会文件名称或硬链接是否存在以及该文件是否为符号链接 |
- h | 在线帮助 |
- l | 列出压缩文件的相关信息 |
- L | 显示版本与版权信息 |
- n | 压缩文件时,不保存原来的文件名称及时间戳 |
- N | 压缩文件时,保存原来文件的名称及时间戳 |
- q | 不显示警告信息 |
- r | 递归处理 |
-v | 显示执行过程 |
实例
将 /tmp/test2/ 的所有文件压缩
# gzip /tmp/test2/*
3、bzip2命令
(1)、bzip2命令用于创建和管理(包括解压)" .bz2 "格式的压缩包
(2)、语法
SYNOPSIS
bzip2 [ -cdfkqstvzVL123456789 ] [ filenames ... ]
(3)、选项
- c | 将压缩的结果送到标准输出 |
---|---|
- f 或 - force | bzip2在压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,使用此参数 |
- h | 在线帮助 |
-k | bzip2在压缩后,会删除原文件。若要保留,使用此参数 |
- s | 降低程序执行时内存的使用量 |
- v | 显示详细信息 |
- t | 测试 .bz2压缩文件的完整性 |
- z | 强制执行 |
… …
举例
压缩 file4 文件,并保留原文件
# bzip2 -vk file4
三、常见的解压命令
1、unzip命令
(1)、unzip为 .zip 压缩文件的解压程序
(2)、语法
SYNOPSIS
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip]
[file(s) ...] [-x xfile(s) ...] [-d exdir]
(3)、选项
- c | 将解压的结果显示在屏幕上,并对字符作适当的转换 |
---|---|
- f | 更新现有的文件 |
- l | 显示压缩文件内所包含的文件 |
- t | 检查压缩文件是否正确,但不解压 |
- v | 执行时显示详细信息,或查看压缩文件目录。但不解压 |
- z | 仅显示压缩文件的备注文字 |
… …
常用的就这些,其余的大家可自行了解
实例
将 file4.zip 解压至当前目录
2、gunzip命令
(1)、gunzip就是与gzip是成对出现的,其作用与gzip相反。
(2)、语法
SYNOPSIS
gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ... ]
(3)选项
- a | 使用ASCII文字模式 |
---|---|
- d | 执行解压缩 |
- f | 强制解压文件。不理会文件名称或硬链接是否存在以及该文件是否为符号链接 |
- h | 在线帮助 |
- l | 列出解压文件的相关信息 |
- L | 显示版本与版权信息 |
- n | 解压文件时,不保存原来的文件名称及时间戳 |
- N | 解压文件时,保存原来文件的名称及时间戳 |
- q | 不显示警告信息 |
- r | 递归处理 |
-v | 显示执行过程 |
举例
将 test2.gz 解压
# gunzip test2.gz
3、bunzip2命令
(1)、bunzip2与bzip2是成对出现的,作用结果与bzip2相反。
(2)、语法
bunzip2 [ -fkvsVL ] [ filenames ... ]
(3)、选项
- v | 显示详细信息 |
---|---|
- f 或 - force | bzip2在压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,使用此参数 |
-k | bunzip2在解压后,会删除原压缩文件。 |
- s 或 - -small | 降低程序执行时内存的使用量 |
… …
实例
解压 file4 文件,并删除原压缩文件
# bunzip2 -vk file4