当前位置:首页 > 技术 > 正文内容

Linux常用文件压缩与打包命令指南

访客 技术 2026年8月27日 1

gzip 压缩工具

gzip 是 Linux 下最常用的压缩工具之一,主要针对单个文件进行压缩处理,无法直接对目录进行操作。

# 压缩指定文件,完成后原文件会被替换为 .gz 文件
gzip my_log.txt

# 还原压缩文件
gzip -d my_log.txt.gz
# 或者使用
gunzip my_log.txt.gz

常用参数说明:

  • -c:将压缩结果输出到标准输出,保留原始文件不改变。
  • -d:解压缩操作。
  • -f:强制覆盖已存在的文件。
  • -r:递归处理目录下的所有文件(仅压缩目录内的文件,目录本身不压缩)。
  • -t:检验压缩包的完整性。
  • -v:显示压缩或解压的详细过程信息。
  • -1-9:设定压缩比率,1最快但压缩率最低,9最慢但压缩率最高,默认级别为6。

bzip2 压缩工具

bzip2 采用比 gzip 更高级的算法,以牺牲执行速度为代价换取更高的压缩比。生成的文件后缀通常为 .bz2。其基本参数与 gzip 基本保持一致,但需要注意 bzip2 不支持 -r 递归选项。

xz 压缩工具

xz 提供了极高的压缩比,相比 .gz 格式体积可缩小约30%,比 .bz2 格式也能缩小约15%。同样地,它也仅支持单一文件的压缩,不支持目录。

zip 归档与压缩工具

不同于上述三种单纯的无损压缩算法,zip 同时具备归档和压缩能力。在 Linux 环境中,它主要用于与 Windows 系统进行跨平台文件交换。

# 将目标文件或目录打包并压缩为 .zip 格式
zip -r project_backup.zip /home/user/project

# 解压 .zip 文件,也可指定仅释放包内特定文件
unzip project_backup.zip config.ini

常用参数说明:

  • -d:从现有压缩包中移除指定文件。
  • -q:静默模式,隐藏执行过程。
  • -r:递归处理,将指定目录及其子目录下所有内容一并打包。
  • -u:仅更新压缩包中较旧的文件或添加新文件。
  • -v:显示详细执行过程或版本信息。
  • -1-9:调节压缩速度与压缩率,1最快,9最优。

tar 打包与联合压缩

gzipbzip2xz 仅能对单个文件进行压缩,无法直接处理目录。而 tar 是一个纯粹的归档(打包)工具,它的作用是将多个文件或整个目录合并为一个单一的大文件。由于归档过程中会附加文件元数据,归档后的文件体积往往略大于原始数据总体积。因此,在 Linux 中压缩目录的标准做法是先用 tar 将目录打包,再调用压缩工具进行压缩。

# 基础语法
tar [操作模式] [选项] 目标文件

核心操作模式:

  • -c:创建新的归档文件。
  • -x:从归档文件中提取还原。
  • -t:列出归档文件中的内容清单。
  • -r:向已有归档文件追加新内容。
  • -u:仅更新归档包中发生过变动的文件。
  • -A:合并多个 tar 归档文件。
  • -d:对比归档文件与磁盘上文件的差异。
  • --delete:从归档中剔除指定文件。

常用辅助选项:

  • -v:显示处理详情,双 v-vv)可展示权限、属主、体积等详细属性。
  • -k:解包时避免覆盖已存在的同名文件。
  • -f:指定归档文件的名称,后接文件名参数。
  • -P:保留文件的绝对路径。
  • -z:底层调用 gzip 进行压缩或解压。
  • -j:底层调用 bzip2 进行压缩或解压。
  • -J:底层调用 xz 进行压缩或解压。

典型解压命令组合:

# 解开 .tar.gz 格式
tar -zxvf archive.tar.gz

# 解开 .tar.bz2 格式
tar -jxvf archive.tar.bz2

# 解开 .tar.xz 格式(需分两步或直接使用 tar -Jxvf)
xz -d archive.tar.xz
tar -xvf archive.tar

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。