Linux 压缩打包入门:tar 与 zip 怎么用

举报
yd_254412059 发表于 2026/11/10 17:14:10 2026/11/10
【摘要】 本文讲 tar 与 zip 的日常用法:tar 打包、gzip 压缩、解压与查看内容,zip 和 unzip 的使用与区别,--exclude 排除日志缓存、-C 与 -d 指定解压目录,以及路径套深、压错缓存、解压覆盖三个新手坑,最后附速查表。

在服务器上干活,压缩打包几乎每天都会遇到:想把弹性云服务器上的日志发给同事定位问题,想把整个网站目录备份一份再升级,或者把本地代码传到服务器部署。文件一多、目录一深,一个个传既慢又容易漏,tar 和 zip 就是为这件事准备的。下面只讲新手最常用的用法。

一、tar 最常用的四个组合

tar 只做一件事:把多个文件和目录打包成一个文件,本身不压缩,想变小要再加压缩选项。下面四个组合最常用。

tar -cvf website.tar website/
tar -czvf website.tar.gz website/
tar -xzvf website.tar.gz
tar -tzvf website.tar.gz

四个命令分别是只打包、打包并用 gzip 压缩、解压到当前目录、只看包里有什么而不解压。选项很好记:c 创建、x 解压、t 查看列表、v 显示过程、f 指定包名、z 用 gzip 压缩。

二、zip 和 unzip 怎么用,和 tar 有什么区别

zip 打包和压缩一步完成,Windows、macOS 不用装额外工具就能打开,跨平台传文件时更方便。

zip -r site.zip site/
unzip site.zip
unzip -l site.zip
unzip site.zip -d /tmp/restore

四个命令分别是打包目录、解压到当前目录、只看包里有什么、解压到指定目录。打包目录要加 -r,否则只会打包一个空目录名。

怎么选?备份用 tar,传给别人用 zip。tar 在 Linux 服务器上备份效果更好,压出来的包通常也更小;zip 的优势是通用,对方用 Windows 还是 macOS,双击基本就能打开。

三、排除文件和指定解压目录

打包前先看目录有多大:

du -sh website/

日志和缓存不要一起压进去,tar 用 --exclude 排除,zip 用 -x 排除:

tar --exclude='*.log' --exclude='cache' -czvf website.tar.gz website/
zip -r site.zip site/ -x "*.log" "*/cache/*"

解压到指定目录,tar 用 -C,unzip 用 -d:

mkdir -p /data/restore
tar -xzvf website.tar.gz -C /data/restore
unzip site.zip -d /data/restore

四、新手最容易踩的三个坑

第一个坑是路径写错,目录套得太深。在根目录执行 tar -czvf backup.tar.gz /home/user/site,解压出来会是 home/user/site 三层嵌套。正确做法是先进到上一级目录再打包:

cd /home/user
tar -czvf /tmp/site.tar.gz site

第二个坑是压了不该压的缓存和日志。日志、缓存、node_modules、临时文件动不动几个 GB,备份包一下子变大,传起来也慢。先用 du -sh website/* | sort -h 看大户,再用 --exclude 或 -x 排除。

第三个坑是解压覆盖同名文件。在原目录直接解压,包里的同名文件会覆盖原来的,改过的配置可能就丢了。先看列表再解压:

tar -tzvf website.tar.gz
unzip -l site.zip

没有同名重要文件再解压,或解到新建空目录,核对后再移过去;不想覆盖可用 unzip -n,遇到同名文件时直接跳过。

五、速查表

想做的事 命令
只打包 tar -cvf a.tar dir
打包并压缩 tar -czvf a.tar.gz dir
只看 tar 包内容 tar -tzvf a.tar.gz
解压 tar 包 tar -xzvf a.tar.gz
打包成 zip zip -r a.zip dir
只看 zip 包内容 unzip -l a.zip
解压 zip 到指定目录 unzip a.zip -d /path

记住一句口诀:备份用 tar 加 gzip,传给别人用 zip;打包前先看目录、排除缓存和日志,解压前先看列表、解到新目录。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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