Linux压缩解压命令大全,tar、zip、unzip用法
时间:2026-10-22 07:36 作者:emer 分类: 无
前言
服务器上打包备份、上传下载源码、解压第三方软件,都离不开压缩解压命令。Linux 常用两套工具:tar(配合 gzip/bzip2/xz,后缀 .tar.gz、.tar.bz2、.tar.xz)和 zip/unzip(后缀 .zip,与 Windows 互通方便)。本篇按场景汇总最常用命令,记住几个核心参数即可覆盖日常运维。
一、tar 核心参数记忆
c:创建打包(create)x:解包(extract)t:查看包内容不解压(list)v:显示过程(verbose)f:指定文件名(file,必须放最后)z:gzip 压缩(.tar.gz)j:bzip2 压缩(.tar.bz2)J:xz 压缩(.tar.xz)-C 目录:解压到指定目录--exclude=路径:打包时排除某些目录
二、tar 打包压缩常用命令
# 1. 打包并用 gzip 压缩目录(最常用)
tar -zcvf backup.tar.gz /var/www/html
# 2. bzip2 压缩(压缩率更高,速度慢)
tar -jcvf backup.tar.bz2 /var/www/html
# 3. xz 压缩(压缩率最高,速度最慢)
tar -Jcvf backup.tar.xz /var/www/html
# 4. 打包时排除缓存目录
tar -zcvf site.tar.gz /var/www/html --exclude=/var/www/html/cache --exclude=/var/www/html/logs
# 5. 查看压缩包内容(不解压)
tar -ztvf backup.tar.gz
三、tar 解压常用命令
# 解压 .tar.gz 到当前目录
tar -zxvf backup.tar.gz
# 解压到指定目录(目录需先存在)
mkdir -p /data/restore
tar -zxvf backup.tar.gz -C /data/restore
# .tar.bz2 解压
tar -jxvf backup.tar.bz2
# .tar.xz 解压
tar -Jxvf backup.tar.xz
# 只解压包内某个文件
tar -zxvf backup.tar.gz ./www/config.php
tar 会自动识别压缩格式,日常也可直接用 tar -xvf backup.tar.gz,省略 z/j/J。
四、zip 与 unzip
# 安装(最小化系统可能缺失)
yum install -y zip unzip
# 压缩目录为 zip
zip -r site.zip /var/www/html
# 压缩时排除某些文件
zip -r site.zip /var/www/html -x "*/cache/*" "*.log"
# 解压 zip 到当前目录
unzip site.zip
# 解压到指定目录
unzip site.zip -d /data/restore
# 查看 zip 内容
unzip -l site.zip
# 解压时覆盖已存在文件(不询问)
unzip -o site.zip
参数:-r 递归打包目录,-d 指定解压目录,-o 强制覆盖,-l 列出内容。
五、gzip / gunzip 单文件压缩
# 压缩单个文件(原文件被替换为 .gz)
gzip messages
# 解压
gunzip messages.gz
# 等价于
gzip -d messages.gz
# 保留原文件压缩
gzip -k messages
六、常见坑
f参数位置错:tar -zcvf 文件名中f必须紧跟文件名,放最前面会报错;- 打包用绝对路径:
tar -zcvf a.tar.gz /var/www解压时会还原完整路径;建议先cd /var再打包www,或用相对路径; - 解压目录不存在:
-C指定的目标目录要先mkdir -p,否则解压失败; - zip 忘记
-r:只打包了目录本身,里面文件没进去; .tar.gz当成.zip解压:先file 文件名或tar -ztvf确认格式;- 中文文件名乱码:unzip 加
-O CP936(老版本)或-O gbk,解压 Windows 带来的 zip; - 大文件打包占满磁盘:先确认目标分区剩余空间,备份包不要和源目录放同一分区。
七、备份场景示例
# 打包网站源码并按日期命名
tar -zcvf /backup/site_$(date +%Y%m%d).tar.gz -C /var www
# 打包数据库导出文件
mysqldump -u root -p dbname > db.sql
gzip db.sql
总结
日常备份优先 tar -zcvf 包名.tar.gz 目录,解压 tar -zxvf 包名.tar.gz;与 Windows 互通用 zip -r / unzip;f 参数紧跟文件名,解压前先确认格式和目标目录,打包大目录时注意磁盘空间和路径写法。
遇到问题加QQ23979811 协助处理