用 tar 打包与解压文件:从备份到迁移

举报
yd_28502004 发表于 2026/11/11 06:16:09 2026/11/11
【摘要】 tar 是 Linux 上最常用的打包工具:本身只做打包,配合 gzip 等压缩工具又能压小体积。本文介绍 tar -czvf 打包、-tzvf 查看、-xzvf 解压、--exclude 排除文件、增量备份的做法,以及绝对路径、权限和压缩格式选择的常见坑,帮你把备份与迁移做成一条命令的事。

在 Linux 服务器上工作,备份目录、迁移项目、打包日志几乎每天都会遇到。tar 是最常用的打包工具:它本身只做打包,把多个文件合成一个归档;配合 gzip、bzip2、xz 等压缩工具,又能把体积压下来。一个命令,备份和迁移就都解决了。


最常用的打包命令是 tar -czvf backup.tar.gz /path/to/dir。四个选项各有含义:c 表示创建归档,z 表示用 gzip 压缩,v 显示处理过程,f 指定归档文件名。习惯上把 .tar.gz 简写成 .tgz,意思完全一样。如果只想打包不压缩,去掉 z 即可,得到的是纯 .tar 文件。


打包之前先确认内容,可以用 tar -tzvf backup.tar.gz 列出归档里的文件清单,解压之前先看一眼,能避免把一堆文件直接散到当前目录。解压用 tar -xzvf backup.tar.gz,x 表示解压;加上 -C /目标目录 可以把文件释放到指定位置,而不是当前目录,这是迁移时最常用的写法。


实际备份时总有些文件不想打包,比如 node_modules、.git 或者体积巨大的缓存目录,用 --exclude 可以排除:tar -czvf backup.tar.gz --exclude=node_modules --exclude=.git project/。多个排除条件可以写多次 --exclude,写在归档名之后、源目录之前。


需要定期备份时,不必每次都全量打包。tar 支持增量备份:tar -czvf inc.tar.gz --newer="2026-11-01" project/ 只打包 11 月 1 日之后改过的文件;更系统的做法是用 --listed-incremental 生成快照文件,每次备份只记录变化的部分,恢复时按顺序解压全量包和增量包即可。


还有几个容易踩的坑。第一,tar 打包绝对路径时会自动去掉开头的斜杠,解压时也是相对路径,这是为了安全,防止解压覆盖系统文件;第二,解压时默认保留原文件权限和属主,普通用户解压别人的备份可能出现权限不足,必要时用 --no-same-owner;第三,压缩格式按需选择:gzip 速度最快、兼容性最好,bzip2 压缩率更高,xz 压缩率最高但最慢,日常备份用 gzip 就够了。


掌握 tar 之后,备份就是一条命令的事:写个简单的备份脚本,配合 crontab 每天凌晨自动打包,重要数据再加一份异地同步,一套可用的备份流程就成型了。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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