工作中,经常会遇到一些压缩格式的后缀文件类型,那么它们怎么压缩和解压的呢,这里记录一下。首先,总结下 zip 及 zip 相关的变种命令的使用。
一、zip/unzip 命令
zip 命令是常用的压缩命令,会生成后缀为 .zip 文件,基本语法格式如下:
zip [参数选项] 压缩后文件 源文件/目录
常用参数有:(通常不使用参数)
- -d:从压缩文件中去除指定的文件
- -m:移动源文件到压缩文件中,会删除源文件
- -n <特定字尾字符串>:不压缩具有特定字尾字符串的文件
- -q:不显示压缩过程信息
- -r:递归,将指定目录下的所有文件和子目录一并处理
- -v:显示压缩过程信息或版本信息
- -数字:数字指的是压缩效率,数值在1~9
使用举例:
# 压缩当前目录下指定的所有文件
zip test_20220704.zip wheater_070*.txt
# 从压缩文件中,排除指定的文件
zip -d test_20220704.zip wheater_0704.txt
# 压缩当前目录下的所有文件,并显示压缩过程信息
zip -v -r test_20220704_all.zip *
而 unzip 命令则是专门解压缩后缀为 .zip 的文件,语法格式如下:
unzip [参数选项] xxx.zip
其常用参数选项有:(通常不使用参数)
- -a:对文本文件进行必要的字符转换
- -l:解压过程中显示包含的所有文件
- -t:检查压缩文件是否正确
- -v:查看压缩目录的详细信息,但不会解压
- -q:不显示解压过程信息
- -L:将压缩文件中的全部文件名转小写
- -n:解压时不要覆盖原有的文件
- -Z:unzip -Z 等同于 zipinfo 命令,会列出压缩文件的详细信息
二、gzip/gunzip 命令
gzip 命令也是常用的压缩命令,会生成后缀为 .gz 文件,语法格式如下:
gzip [参数选项] 源文件/目录
常用参数选项有:(通常不使用参数)
- -d:解压
- -l:列出压缩文件的相关信息
- -q:不显示解压过程中的警告信息
- -r:递归处理,将指定目录下的所有文件及子目录一并处理
- -v:显示压缩过程信息
- -数字:数字指的是压缩效率,数值在1~9,预设值为"6"
使用举例:
# 压缩指定文件,会生成wheater_20220704.gz
gzip wheater_20220704.txt
# 压缩当前目录,当前目录下有2个文件:wheater_20220701.txt、wheater_20220702.txt
# 结果会生成wheater_20220701.gz、wheater_20220702.gz
gzip *
# 列出解压过程的信息信息
gzip -dv *
可以看到,该命令生成的 .gz 文件名称会和 源文件的名称 保持一致。如果是多个源文件,或者某目录下所有的文件,通常会一个个压缩,如果需要合并压缩某目录下所有的文件,使用 -r 参数。
而 gunzip 命令,则是专门解压缩后缀为 .gz 的文件,语法格式如下:
gunzip [参数选项] xxxx.gz
常用参数选项有:(通常不使用参数)
- -l:列出压缩文件的相关信息
- -q:不显示警告信息
- -r:递归处理,将指定目录下的所有文件及子目录一并处理。
- -S<压缩字尾字符串>:更改压缩字尾字符串
- -t:测试压缩文件是否正确无误
- -v:显示执行过程
请注意,gunzip 相当于 gzip 的硬连接,不论是压缩或解压,都可通过 gzip 命令单独完成。
三、bzip2/bunzip2 命令
bzip2 命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。如果没有加上任何参数,bzip2 压缩完文件后会产生 .bz2 的压缩文件,并删除原始的文件。
bzip2 [参数选项] 源文件/目录
bunzip2 [参数选项] xxxx.bz2
常用参数选项有:(通常不使用参数)
- -c:将压缩与解压缩的结果送到标准输出
- -d:解压
- -k:压缩或解压缩文件时保留原始的文件,不删除
- -t:测试压缩文件是否完整
- -v:压缩或解压缩文件时,显示详细的信息
- -z:强制执行压缩
- -压缩等级:压缩时的区块大小
请注意:bunzip2 命令可解压缩 .bz2 格式的压缩文件,bunzip2 实际上是 bzip2 的符号连接,执行 bunzip2 命令与 bzip2 -d 的效果一样。
最后
实际工作中,最常用的 zip 和 unzip 命令,当然压缩解压的重点在 tar 包使用,下篇将重点梳理。
209

被折叠的 条评论
为什么被折叠?



