Linux 压缩与归档:tar 命令的五个实用用法

举报
yd_211758112 发表于 2026/11/11 08:28:45 2026/11/11
【摘要】 Linux 压缩与归档:tar 命令的五个实用用法在服务器运维中,备份目录、迁移项目、打包日志几乎天天都会遇到。tar 是 Linux 下最常用的归档工具,但很多人只记得 tar -zxvf 一个组合。下面整理五个在实际工作中最常用、也最容易踩坑的用法。 一、打包并压缩:选对压缩算法tar 本身只负责"归档"(把多个文件合成一个),压缩由参数指定:tar -czf backup.tar.g...

Linux 压缩与归档:tar 命令的五个实用用法

在服务器运维中,备份目录、迁移项目、打包日志几乎天天都会遇到。tar 是 Linux 下最常用的归档工具,但很多人只记得 tar -zxvf 一个组合。下面整理五个在实际工作中最常用、也最容易踩坑的用法。

一、打包并压缩:选对压缩算法

tar 本身只负责"归档"(把多个文件合成一个),压缩由参数指定:

tar -czf backup.tar.gz /data/app     # gzip,速度快,最通用
tar -cjf backup.tar.bz2 /data/app    # bzip2,压缩率更高,较慢
tar -cJf backup.tar.xz /data/app     # xz,压缩率最高,最慢

经验:日常备份用 gzip;需要长期存档、节省空间时用 xz。如果机器核数多,可以配合 pigz 并行压缩:

tar -I pigz -cf backup.tar.gz /data/app

二、解压到指定目录

很多人解压后发现文件散落在当前目录。用 -C 指定目标目录:

mkdir -p /opt/app
tar -xzf backup.tar.gz -C /opt/app

新版 GNU tar 解压时能自动识别压缩格式,所以 tar -xf 文件名 对 .gz、.bz2、.xz 都适用。

三、不解压先查看内容

解压一个来源不明的包之前,先看里面有什么,避免覆盖已有文件:

tar -tzf backup.tar.gz | head -20

如果第一层不是一个统一的目录,说明解压时会把文件直接铺在当前路径下,最好先建一个空目录再解压。

四、排除不需要的文件

打包项目时,node_modules、日志、缓存往往占了大部分体积,用 --exclude 排除:

tar -czf project.tar.gz \
  --exclude='node_modules' \
  --exclude='*.log' \
  --exclude='.git' \
  project/

注意:--exclude 要写在要打包的路径之前,部分版本写在后面会不生效。

五、只解压其中某个文件

从大包里取回一个配置文件,不必全部解压:

tar -xzf backup.tar.gz project/config/app.conf

路径必须与 tar -t 列出的完全一致(包括开头的目录名)。

补充:避免"绝对路径"陷阱

打包时如果写 tar -czf a.tar.gz /etc/nginx,tar 会去掉开头的 / 并提示 “Removing leading ‘/’”。这是保护机制,防止解压时覆盖系统文件。更推荐的写法是切换目录后用相对路径:

tar -czf nginx-conf.tar.gz -C /etc nginx

小结

场景 命令
打包压缩 tar -czf a.tar.gz dir/
解压到目录 tar -xf a.tar.gz -C /target
查看内容 tar -tf a.tar.gz
排除文件 --exclude='*.log'
解压单个文件 tar -xf a.tar.gz path/file

掌握这五个用法,日常的备份、迁移和排查基本就够用了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。