news 2026/8/24 8:47:56

Linux压缩解压实战指南:tar、gzip、zip 完整操作清单

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux压缩解压实战指南:tar、gzip、zip 完整操作清单

Linux压缩解压实战指南:tar、gzip、zip 完整操作清单

【免费下载链接】linux-tutorial:penguin: Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial

本文出自开源项目 linux-tutorial,按使用场景梳理 Linux 压缩解压命令,讲清 tar/gzip/zip 命令的高频组合。读完即可处理 .tar、.tar.gz、.zip 的解压、整目录压缩与排除文件等场景。

在 Linux 上收到一个源码包,或者收到同事从 Windows 发来的 .zip 文件,第一个动作都一样——打开它。下面是打开这些压缩包、再把东西发出去的整套命令。

1. 先识别再动手:这个压缩包到底是什么

别上来就敲解压命令,先用file判断真实格式,它比看后缀更可靠:

file shop.tar.gz app.zip notes.tar # shop.tar.gz: gzip compressed data # app.zip: Zip archive data # notes.tar: POSIX tar archive (GNU)

确认格式后,按用途选命令:

你的场景推荐格式记住的命令为什么
服务器目录备份.tar.gztar -czf体积小、速度快,Linux 上最常见
和 Windows 交换文件.zipzip -r两边直接打开,无需转换
只把几个文件捆走.tartar -cf不压缩,最省时间
单个大文件只省空间.gzgzip不需要目录结构
长期归档、体积最小.tar.xztar -cJf体积最小,但最慢

💡 一句话:留在 Linux 上用 .tar.gz,要发 Windows 就用 .zip。

2. 把目录压成小包:tar 负责捆,gzip 负责挤

这两个词最容易混。tar 的本职是"打包"——把一堆文件和目录捆成一个档案,本身完全不省空间。真正压体积的是压缩工具,tar 加一个字母就能调用它:

  • -z:调 gzip,产出 .tar.gz
  • -j:调 bzip2,产出 .tar.bz2
  • -J:调 xz,产出 .tar.xz

.tar.gz 这个双后缀就是这么来的:前半段是 tar 的打包结果,后半段是 gzip 的压缩结果。常用参数:

参数作用
-c / -x / -t创建档案 / 还原 / 只看内容
-z / -j / -J用 gzip / bzip2 / xz 压缩
-f指定档案名,必须放最后
-v逐行显示文件清单
-C还原到指定目录
tar -czf /backup/shop_$(date +%F).tar.gz /var/www/shop tar -tzf /backup/shop_2026-08-23.tar.gz | head tar -xzf /backup/shop_2026-08-23.tar.gz -C /tmp/restore

第二行只列档案里前几项,第三行用-C指定还原位置,避免文件散落满当前目录。

⚠️-f必须紧跟在最后,它的下一位就是文件名。写错位置会看到tar: -f: No such file or directory

3. zip 递归压缩目录,压缩时排除文件的正确写法

zip 最大的价值是跨平台:Linux 上压出来,Windows 双击就能开。压缩目录要加-r递归进子目录:

zip -r dist_v1.2.zip build/ docs/ -x "*.tmp" -x "build/cache/*" unzip -l dist_v1.2.zip unzip -d /tmp/preview dist_v1.2.zip
  • -x跟在档案名后面,排除规则要加引号;排除多个就各写一个-x
  • unzip -l只列内容不还原;-d指定解压目录;加-o覆盖同名文件不再询问
  • 加密包解压时加-P跟密码

4. 实战脚本:备份目录,自动清理旧备份

把前面的命令组合起来,就是一段每天备份一个目录、只留最近 7 份的脚本:

#!/bin/bash TARGET="/opt/myapp/data" DEST="/backup/myapp" NAME="myapp_$(date +%F).tar.gz" mkdir -p "$DEST" tar -czf "$DEST/$NAME" -C "$(dirname "$TARGET")" "$(basename "$TARGET")" ls -t "$DEST" | grep -v "$NAME" | tail -n +7 | xargs -r rm -f -- "$DEST"/{}

tar 那行有个小技巧:用-C先跳到 data 的父目录,再打包目录名本身。这样档案里的路径变成data/...这种相对路径,换机器还原时不会把绝对路径搞混。

5. 新手高频踩坑

5.1 记不住参数:如何解压 tar.gz

只记一组对照:创建tar -czf,解压tar -xzf,查看tar -tzf。把c换成x就是反方向。

5.2 遇到 .tar.bz2、.tar.xz 怎么办

思路相同:-j配 bzip2,大写-J配 xz。解压写成tar -xjf pkg.tar.bz2tar -xJf pkg.tar.xz

J 是 j 按住 Shift 的键。最常见的错误就是用 xz 包敲了小写 j,报not bzip2 compressed data

5.3 gzip 报 "Not a directory"

gzip 只处理单个文件,不能直接压目录。目录先交给 tar 捆起来,再用-z让 tar 顺带调 gzip,这是唯一顺路。

5.4 只想还原大档案里的一个文件

在解压命令末尾追加文件名:tar -xzf shop_2026-08-23.tar.gz var/www/shop/config/app.yml。只还原这一个文件,几百 GB 的档案也不用全量解开。

6. 下一步建议

👉 先找个任意小目录,把tar -czftar -tzf各敲三遍,再用zip -r试一次排除全部*.log文件。参数细节可对照项目内 docs/linux/cli/linux-cli-file-compress.md 这一章。

【免费下载链接】linux-tutorial:penguin: Linux教程,主要内容:Linux 命令、Linux 系统运维、软件运维、精选常用Shell脚本项目地址: https://gitcode.com/GitHub_Trending/lin/linux-tutorial

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 8:46:09

Node.js 全栈 API 设计与 GraphQL 实:版本升级最怕忽略什么

Node.js 全栈 API 设计与 GraphQL 实:版本升级最怕忽略什么 在 REST API 时代,升级 API 版本通常很简单粗暴:给 URL 加个前缀,比如从 /api/v1/user 切到 /api/v2/user。但在 GraphQL 的世界里,“不鼓励使用大版本号&am…

作者头像 李华
网站建设 2026/8/24 8:42:06

AgentHazard基准:评估计算机操作型AI智能体安全性的关键挑战与实践

1. 项目缘起:当AI助手开始“自主操作”电脑时,我们如何评估其安全性?最近,一个名为“AgentHazard”的基准测试在AI圈子里引起了不小的讨论。这个名字本身就很有意思——“Agent”指的是那些能够理解指令并操作计算机的智能体&…

作者头像 李华
网站建设 2026/8/24 8:41:28

数学建模竞赛实战:从校赛到国赛的降维策略与团队协作

1. 从“国赛”到“校赛”:一次竞赛思维的降维实战如果你是一名理工科学生,尤其是对数学建模、算法竞赛感兴趣的同学,看到“国赛数学建模”这几个字,心里多半会咯噔一下。它意味着高强度的脑力风暴、三天三夜的极限挑战、以及一个全…

作者头像 李华
网站建设 2026/8/24 8:40:25

quadtree-js快速上手教程:5分钟安装并跑通你的第一个四叉树

quadtree-js快速上手教程:5分钟安装并跑通你的第一个四叉树 【免费下载链接】quadtree-js A lightweight quadtree implementation for javascript 项目地址: https://gitcode.com/gh_mirrors/qu/quadtree-js quadtree-js 是一款轻量的 JavaScript 四叉树&am…

作者头像 李华