玩转服务器—Linux文件压缩与解压一览表
玩转服务器—Linux文件压缩与解压一览表
滴水穿石非一日之功
想必大家都对 ZIP 文件并不陌生。它因其广泛的兼容性和易用性,成为 Windows 和 macOS 默认的压缩格式。压缩与解压的操作,大家都再熟悉不过,在 Linux 系统中,当然也提供了多种压缩工具。正因如此,不同格式的选择和使用常常让人感到困惑。下面让我们来一起梳理一下。
常见压缩格式及用途
gzip
(.gz
):高效且常用,常与tar
联合使用。bzip2
(.bz2
):压缩率较高,但速度较慢。zip
(.zip
):跨平台常用格式,支持直接包含多个文件。7z
(.7z
):由 7-Zip 提供,支持极高压缩率。xz
(.xz
):压缩率高,适合对大小敏感的应用。rar
(.rar
):需要专用工具解压,常见于Windows环境。tar
(.tar
):用于打包多个文件,但本身不压缩。
文件类型 | 压缩 | 解压 | 默认压缩级 | 默认压缩是否保留源文件 |
---|---|---|---|---|
.gz | gzip | gzip -d .gzgunzip .gz | 6 | 否 |
.bz2 | bzip2 | bzip2 -d .bz2bunzip2 .bz2 | 9 | 否 |
.xz | xz | xz -d .xzunxz .xz | 6 | 否 |
.zip | zip file.zip | unzip file.zip | 6 | 是 |
.rar | rar a file.rar | unrar x file.rar | 是 | |
.7z | 7z a file.7z | 7z x archive.7z | 5 | 是 |
.tar.gz | tar -czf gz file1 file2 | tar -xzf gz | / | / |
.tar.bz | tar -cjf bz2 file1 file2 | tar -xjf bz2 | / | / |
.tar.xz | tar -cJf xz file1 file2 | tar -xJf xz | / | / |
.gz 文件
.gz
文件是使用 GU Zip (gzip) 工具进行压缩的文件格式,通常用于压缩单个文件或文件流。.gz
格式是广泛使用的压缩格式。
gzip压缩
gzip压缩,压缩完成后会默认删除源文件
代码语言:javascript代码运行次数:0运行复制##将 压缩成 .gz
gzip
压缩且保留源文件
代码语言:javascript代码运行次数:0运行复制gzip -k
gzip -c > .gz
同时压缩多个文件
可以分别列出,也可以使用通配符。
代码语言:javascript代码运行次数:0运行复制# 压缩后会分别生成 gz、gz 和 .gz
gzip
gzip file*.txt
指定压缩级别
gzip 提供了压缩级别的选择,范围从 1
到 9
,其中 1
是最快的压缩速度,但压缩比最低,9
是最慢的压缩速度,但压缩比最高。默认情况下,gzip
使用压缩级别 6
。
##使用最大压缩比
gzip -9
##使用最快压缩速度
gzip -1
.gz文件解压
解压 .gz
文件可以使用 gunzip
命令或 gzip -d
命令。
gzip解压,默认会删除源文件
代码语言:javascript代码运行次数:0运行复制gzip -d .gz
gunzip .gz
解压且保留源文件
代码语言:javascript代码运行次数:0运行复制gzip -dk .gz
gunzip -k .gz
同时解压多个gz文件
代码语言:javascript代码运行次数:0运行复制gzip -d file1.gz file2.gz file.gz
gunzip file1.gz file2.gz file.gz
解压到指定目录
本质是重定向了输出。
代码语言:javascript代码运行次数:0运行复制gzip -dc GRCh8.p14.genome.fa.gz > /path/to/destination/GRCh8.p14.genome.fa
gunzip -c .gz > /path/to/destination/
##解压同时重命名
gunzip -c .gz > /path/to/destination/new_
查看gz文件的详细信息
包括原文件大小、压缩后大小、压缩比等
代码语言:javascript代码运行次数:0运行复制gzip -l GRCh8.p14.genome.fa.gz
检查gz文件是否完整
没有报错输出即代表文件完整
代码语言:javascript代码运行次数:0运行复制gzip -t GRCh8.p14.genome.fa.gz
.bz2 文件
.bz2
文件是使用 bzip2 工具进行压缩的文件格式,因其默认提供比 gzip
更高的压缩比,广泛用于压缩大文件,尽管压缩和解压速度相对较慢。
bzip2压缩
bzip2压缩
压缩完成后也是默认删除源文件
代码语言:javascript代码运行次数:0运行复制## 将被压缩成 .bz2
bzip2
压缩且保留源文件
代码语言:javascript代码运行次数:0运行复制bzip2 -k
指定压缩级别压缩
bzip2
同样允许指定压缩级别,范围从 1
到 9
,其中 1
是最快的压缩速度,但压缩比最低,9
是最慢的压缩速度,但压缩比最高。默认压缩级别是 9
(最高压缩比)。
bzip2 -1
bzip2 -9
同时压缩多个文件
代码语言:javascript代码运行次数:0运行复制bzip2
bzip2 file*.txt
.bz文件解压
类似 .gz
文件,解压 .bz2
文件可以使用 bunzip2
命令或者 bzip2 -d
命令。
解压
默认删除源文件
代码语言:javascript代码运行次数:0运行复制#.bz2 会被解压为
bunzip2 .bz2
##或者
bzip2 -d .bz2
解压时保留源文件
代码语言:javascript代码运行次数:0运行复制bunzip2 -k .bz2
##或者
bzip2 -dk .bz2
同时解压多个文件
代码语言:javascript代码运行次数:0运行复制bunzip2 file1.bz2 file2.bz2 file.bz2
bzip2 -d file1.bz2 file2.bz2 file.bz2
bunzip file*.bz2
bzip2 -d file*.bz2
解压到指定目录
代码语言:javascript代码运行次数:0运行复制bunzip2 -c .bz2 > /path/to/destination/
bzip2 -dc .bz2 > /path/to/destination/
##解压并重命名
bunzip2 -c .bz2 > /path/to/destination/new_
bzip2 -dc .bz2 > /path/to/destination/new_
查看压缩文件详细信息
代码语言:javascript代码运行次数:0运行复制bzip2 -l .bz2
检查压缩文件完整性
代码语言:javascript代码运行次数:0运行复制bzip2 -t .bz2
.xz 文件
.xz
文件格式是基于 LZMA2算法(Lempel-Ziv-Markov chain algorithm)的压缩文件格式,提供了非常高的压缩比,通常比 .gz
和 .bz2
格式更高效,尤其适用于压缩大文件。它在 Linux 和类 Unix 系统中非常流行,并且常用于软件包的分发和备份。
xz压缩
压缩
默认删除源文件
代码语言:javascript代码运行次数:0运行复制## 压缩 ,并生成一个名为 .xz 的压缩文件
xz
压缩并保留源文件
代码语言:javascript代码运行次数:0运行复制##将 压缩为 .xz,并保留原文件
xz -k
指定压缩级别
xz
默认的压缩级别是 6
,且支持多个压缩级别,压缩级别的范围是从 1
到 9
,其中 1
是最快的压缩,但压缩比最低,9
是最慢的压缩,但压缩比最高。
##使用最大压缩比
xz -9
##使用最快压缩速度
xz -1
同时压缩多个文件
代码语言:javascript代码运行次数:0运行复制xz
##使用通配符
xz file*
.xz文件解压
代码语言:javascript代码运行次数:0运行复制xz -d .xz
##或者
unxz .xz
解压到指定目录
代码语言:javascript代码运行次数:0运行复制xz -dc .xz > /path/to/destination/
unxz -c .xz > /path/to/destination/
查看.xz
文件的内容
##会显示压缩文件的大小、压缩率等信息,但不会解压文件
xz -l .xz
.tar 文件
gzip、bzip2和xz 都不能压缩整个目录,如果要用压缩整个目录为 .gz
、.bz
、.xz
格式,这个时候就需要和 tar 命令联用。
tar
(Tape Archive)是 Unix 和类 Unix 系统中的一个常用命令,用于创建、管理和解压归档文件(通常称为 tarball)。tar
不仅能将多个文件和目录归档为一个文件(.tar
格式),还支持多种压缩算法,如 .gz
、.bz2
、.xz
等,生成 .tar.gz
、.tar.bz2
、.tar.xz
等压缩文件。
创建归档文件
使用 -c
选项创建一个归档文件,-f
选项指定归档文件的名称。
## 把 file1、file2 和 directory/ 压缩为
tar -cf file1 file2 directory/
查看归档内容而不解压
代码语言:javascript代码运行次数:0运行复制##列出 中包含的所有文件和目录
tar -tf
解开归档文件
代码语言:javascript代码运行次数:0运行复制##解压 中的所有文件到当前目录
tar -xf
##解压归档文件到指定目录
tar -xf -C /path/to/destination/
归档和压缩联用
代码语言:javascript代码运行次数:0运行复制##归档,并调用gzip压缩打包后的文件
tar -czf gz file1 file2
##归档,并调用bzip2压缩打包后的文件
tar -cjf bz2 file1 file2
##归档,并使用xz压缩打包后的文件
tar -cJf xz file1 file2
解压使用压缩格式的归档文件
代码语言:javascript代码运行次数:0运行复制##解压 .tar.gz 或 .tgz文件:
tar -xzf gz
##解压 .tar.bz2 文件
tar -xjf bz2
##解压 .tar.xz 文件
tar -xJf xz
##自动识别后缀解压
tar -xf gz
tar -xf bz2
tar -xf xz
注:如果记不住解压gz、bz2、xz压缩文件的具体参数,只需要记住tar -xf
即可,会自带识别文件后缀,使用对应的工具来解压
.zip 文件
在 Linux 系统中, .zip
文件格式并不是本地支持的(如 .gz
或 .bz2
),但是可以通过安装 zip
和 unzip
工具来处理 .zip
文件。
zip压缩
压缩文件
zip默认会保留源文件
代码语言:javascript代码运行次数:0运行复制##将 压缩成 file.zip 文件
zip file.zip
压缩多个文件
代码语言:javascript代码运行次数:0运行复制zip archive.zip
##使用通配符
zip archive.zip *.txt
压缩整个目录
代码语言:javascript代码运行次数:0运行复制## 将 directory/` 目录及其所有子文件和子目录压缩成 archive.zip 文件
zip -r archive.zip directory/
指定压缩级别压缩
zip
命令也可以自定义设置压缩级别,从 0
到 9
,其中 0
为不压缩,9
为最大压缩。默认的压缩级别是 6
。
zip -0 archive.zip
zip -9 archive.zip
更新压缩文件
添加文件到已存在的 .zip
文件/更新 .zip
文件中的文件
-u
参数,可以向已经存在的 .zip
文件添加新的文件。
#将 `` 添加到已存在的 `archive.zip` 文件中
zip -u archive.zip
#将更新后的 `` 添加到 `archive.zip` 文件中(如果文件内容有变化)。
zip -u archive.zip
.zip文件解压
解压 .zip
代码语言:javascript代码运行次数:0运行复制## 解压 file.zip 到当前目录,并且会自动提取文件及目录结构
unzip file.zip
解压到指定目录
代码语言:javascript代码运行次数:0运行复制##将 file.zip 解压到 /path/to/destination/ 目录,且保持原有的目录结构
unzip file.zip -d /path/to/destination/
列出 .zip 文件内容
代码语言:javascript代码运行次数:0运行复制##列出 file.zip 文件中的所有内容(文件名、大小等信息)
unzip -l file.zip
仅解压指定文件
代码语言:javascript代码运行次数:0运行复制#仅解压 和 到 tmp目录下
unzip tmp.zip tmp/ -d ./tmp/
.rar 文件
.rar
文件是由 RAR 压缩工具生成的文件格式,通常提供较高的压缩比,尤其适用于大文件和多文件集合。RAR 文件格式在 Linux 中通常也不是内建支持的,但可以通过安装unrar
或 rar
来处理 .rar
文件。安装可以系统管理员安装也可以自己安装。
##管理员安装
sudo apt install unrar
##普通用户安装
mamba install unrar
rar压缩
压缩
默认也是保留源文件
代码语言:javascript代码运行次数:0运行复制rar a file.rar
压缩多个文件
代码语言:javascript代码运行次数:0运行复制rar a archive.rar
##使用通配符
rar a readme.rar readme*.txt
压缩整个目录
代码语言:javascript代码运行次数:0运行复制#将 `directory/` 目录及其所有文件和子目录压缩成 `archive.rar` 文件
rar a -r archive.rar directory/
指定压缩级别
rar
命令默认的压缩级别是 ,同时也支持多种压缩级别,从
0
到 5
,其中 0
是最快的压缩,但压缩比最低,5
是最慢的压缩,但压缩比最高。
rar a -m5 archive.rar
.rar文件解压
解压
代码语言:javascript代码运行次数:0运行复制##解压文件到当前工作目录
unrar x file.rar
unrar x paper19_cancerCell.rar
解压到指定目录
代码语言:javascript代码运行次数:0运行复制unrar x file.rar -d /path/to/destination/
查看 .rar
文件内容
unrar l file.rar
.7z 文件
.7z
文件是 7-Zip 格式的压缩文件,通常提供比 .zip
和 .rar
更高的压缩比。7z
格式支持多种压缩算法、加密、分卷压缩等高级功能,广泛用于高效的文件压缩和存储。同样,7z格式也不是内建支持的,需要安装 7z 或 p7zip 工具
##管理员安装
sudo apt install p7zip-full
##普通用户安装
mamba install p7zip
7z压缩
压缩
7z压缩默认会保留源文件
代码语言:javascript代码运行次数:0运行复制# 将 `` 压缩为 `file.7z`
7z a file.7z
压缩多个文件
代码语言:javascript代码运行次数:0运行复制7z a archive.7z
##使用通配符
7z a readme2.7z file*.txt
image.png
压缩整个目录
代码语言:javascript代码运行次数:0运行复制7z a -r archive.7z directory/
指定压缩级别
默认的压缩级别是 5
,同样提供了多种压缩级别,范围从 0
到 9
,其中 0
是最快的压缩速度,但压缩比最低,9
是最慢的压缩速度,但压缩比最高。
7z a -mx=9 archive.7z
.7z文件解压
解压,默认解压到当前目录,并保留文件的目录结构。
代码语言:javascript代码运行次数:0运行复制7z x archive.7z
解压到指定目录
代码语言:javascript代码运行次数:0运行复制7z x archive.7z -o/path/to/destination/
注意, -o
参数和路径之间没有空格
查看.7z文件内容
代码语言:javascript代码运行次数:0运行复制## 列出 .7z 文件中的所有内容,包括文件名、大小等信息
7z l archive.7z
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 8 条评论) |
本站网友 80040154 | 12分钟前 发表 |
.zip 文件格式并不是本地支持的(如 .gz 或 .bz2) | |
本站网友 14个月宝宝发育指标 | 12分钟前 发表 |
9 是最慢的压缩速度 | |
本站网友 网站计数器 | 15分钟前 发表 |
file2 和 directory/ 压缩为 tar -cf file1 file2 directory/ 查看归档内容而不解压代码语言:javascript代码运行次数:0运行复制##列出 中包含的所有文件和目录 tar -tf 解开归档文件代码语言:javascript代码运行次数:0运行复制##解压 中的所有文件到当前目录 tar -xf ##解压归档文件到指定目录 tar -xf -C /path/to/destination/ 归档和压缩联用代码语言:javascript代码运行次数:0运行复制##归档 | |
本站网友 中药美白祛斑面膜配方 | 22分钟前 发表 |
压缩率等信息 | |
本站网友 驳回 | 20分钟前 发表 |
但可以通过安装unrar 或 rar来处理 .rar 文件 | |
本站网友 一线生 | 27分钟前 发表 |
常与 tar 联合使用 | |
本站网友 祛除颈纹 | 20分钟前 发表 |
但压缩比最低 |