Linux下存在多个文件压缩工具,常用的有bzip2、gzip和zip。这三个工具都是可以将一个文件进行压缩操作,使其在不丢失任何信息的情况下占用较少的磁盘空间。而如何对于多个文件/目录进压缩操作呢?
我们通过上一关的学习,我们了解到了使用tar命令可以将多文件/目录打包生成一个文件,那么对于多文件/目录的压缩操作分为两步:第一步是将其进行打包,然后将打包过后的文件进行压缩操作。
接下让我们详细的学习bzip2、gzip和zip的使用方法。
bzip2
bzip2命令用于创建和管理(包括解压缩).bz2格式的压缩包。
具体命令如下:
bzip2 命令参数 指定要压缩的文件
常用命令参数如下:
-z或——compress:强制执行压缩;-d或——decompress:执行解压缩;-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;-v或——verbose:压缩或解压缩文件时,显示详细的信息;
案例演示:
使用bzip2命令对当前目录下的new.tar文件进行压缩,具体使用如下命令:
bzip2 new.tar

gzip
gzip命令用于创建和管理(包括解压缩).gz格式的压缩包。
具体命令如下:
gzip 命令参数 指定要压缩的文件
常用命令参数如下:
-d或--decompress或----uncompress:解开压缩文件;-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;-l或——list:列出压缩文件的相关信息;-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;-v或——verbose:显示指令执行过程;
案例演示:
使用gzip命令对当前目录下的new.tar文件进行压缩,具体使用如下命令:
gzip new.tar

zip
zip命令对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有.zip扩展名的压缩文件。
具体命令如下:
zip 命令参数 指定生成的压缩文件名 要被压缩的文件/目录列表
常用命令参数如下:
-d:从压缩文件内删除指定的文件;-q:不显示指令执行过程;-r:递归处理,将指定目录下的所有文件和子目录一并处理;-v:显示指令执行过程或显示版本信息;-u:更换较新的文件到压缩文件内;-x<范本样式>:压缩时排除符合条件的文件;
案例演示:
使用zip命令将newDir目录下的所有文件/目录压缩生成newDir.zip,具体使用如下命令:
zip -r newDir.zip newDir

tar命令进行压缩
在上一关的学习中,我们学会了使用tar命令对多个文件/目录进行打包操作,如果针对多文件/目录进行压缩操作时,首先使用tar将其打包生成一个文件,然后使用bzip2和gzip对其进行压缩,那么这里也可以使用tar命令一步就实现对多文件/目录进行压缩操作。
采用bzip2方式执行tar命令进行压缩的具体命令如下:
tar -jcvf 指定生成的压缩文件名 要被压缩的文件/目录列表
常用命令参数如下:
-c 建立新的归档文件;-v 处理过程中输出相关信息;-f 对普通文件操作;-j 以bzip2对文件/目录进行压缩;
采用gzip进行压缩的具体命令如下:
tar -zcvf 指定生成的压缩文件名 要被压缩的文件/目录列表
常用命令参数如下:
-c 建立新的归档文件;-v 处理过程中输出相关信息;-f 对普通文件操作;-z 以gzip对文件/目录进行压缩;
案例演示1:
使用tar命令将当前目录下的a.txt、b.txt和c.txt文件压缩生成new.tar.bz2,具体使用如下命令:
tar -jcvf new.tar.bz2 a.txt b.txt c.txt

这里也可以分为两步进行操作,首先是创建tar包,然后对tar包使用bzip2进行压缩操作。
案例演示2:
使用tar命令将当前目录下的a.txt、b.txt和c.txt文件压缩生成new.tar.gz,具体使用如下命令:
tar -zcvf new.tar.gz a.txt b.txt c.txt

















