惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
O
OpenAI News
V
V2EX
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
S
Schneier on Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
小众软件
小众软件
L
LINUX DO - 热门话题
C
Cybersecurity and Infrastructure Security Agency CISA
博客园 - Franky
Security Latest
Security Latest
S
SegmentFault 最新的问题
Project Zero
Project Zero
Spread Privacy
Spread Privacy
K
Kaspersky official blog
J
Java Code Geeks
V
Vulnerabilities – Threatpost
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
L
Lohrmann on Cybersecurity
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
Scott Helme
Scott Helme
WordPress大学
WordPress大学
量子位
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
宝玉的分享
宝玉的分享
Hugging Face - Blog
Hugging Face - Blog
AWS News Blog
AWS News Blog
Help Net Security
Help Net Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Simon Willison's Weblog
Simon Willison's Weblog
S
Secure Thoughts
博客园 - 【当耐特】
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
V
Visual Studio Blog
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
腾讯CDC
Cyberwarzone
Cyberwarzone
IT之家
IT之家
GbyAI
GbyAI
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
云风的 BLOG
云风的 BLOG
T
Troy Hunt's Blog
D
Docker

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子 docker学习(2)-安装 docker学习(1)-基本概念 Github 使用 Self-hosted Runner 实现服务器自动化部署 github创建分支 + Pull Request 合并 Git Rebase vs Git Merge:深入理解与实战选择 Git 系统学习教程:从零到团队协作 AI学习笔记(2)-OpenClaw安装 windbg分析dmp文件 docker desktop 和 Vmware冲突的解决办法
《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术
xiashengwang · 2026-04-21 · via 博客园 - xiashengwang

2026-04-21 16:41  xiashengwang  阅读(13)  评论()    收藏  举报

第 10 篇:压缩与打包 – tar 的艺术

学习目标

  • 理解打包与压缩的区别
  • 掌握 tar 命令的常用组合
  • 学会使用 gzip, bzip2, zip 辅助工具

核心概念

tar(tape archive)

  • 打包(不压缩):tar -cvf archive.tar /path
  • 解包:tar -xvf archive.tar
  • 打包并压缩(gzip):tar -czvf archive.tar.gz /path
  • 解压:tar -xzvf archive.tar.gz

使用 bzip2(更慢但更小):-cjvf / -xjvf

选项说明

  • c:创建归档
  • x:解包
  • v:显示详细过程
  • f:指定文件名
  • z:通过 gzip 过滤
  • j:通过 bzip2 过滤
  • t:查看(list)
  • C 指定解压目录(change directory)

其他压缩工具

gzip file          # 压缩成 file.gz,原文件消失
gunzip file.gz     # 解压
zip -r archive.zip dir/
unzip archive.zip

动手实验

实验 1:备份 /etc 目录

tar -czvf etc_backup_$(date +%Y%m%d).tar.gz /etc
ls -lh etc_backup_*.tar.gz

用bzip2的压缩的话,换-z-j,后缀名.gz改为.bz2

tar -cjvf etc_backup_$(date +%Y%m%d).tar.bz2 /etc

实验 2:解压并查看内容

tar -tzvf etc_backup_20250417.tar.gz | head -20   # 列出内容不解压
tar -xzvf etc_backup_20250417.tar.gz -C /tmp/     # 解压到 /tmp

用bzip2的解压,换-z-j

tar -xjvf etc_backup_20260421.tar.bz2 -C etc_tmp/

实验 3:使用 zip 压缩一个目录

zip -r scripts.zip ~/linux_practice/scripts/
unzip scripts.zip -d /tmp/unzip_test/

常见错误

  • 忘记 -f 选项导致 tar 把文件名当成下一个参数
  • 解压时未使用 -C 指定目录,文件会散落在当前目录

思考题

  1. tar -czvftar -xzvf 中 z 的位置可以调换吗?
  • 除了f必须放在最后,z可以在前面调换。
  1. 如何只解压 tar.gz 中的某一个文件?
    tar -xzvf 压缩包名 要解压的文件路径
    例如:指解压包里的etc/hosts目录:
    tar -xzvf etc_backup_20250417.tar.gz etc/hosts