Linux压缩解压命令大全,tar、zip、unzip用法
前言
服务器上经常需要压缩文件或者解压上传的压缩包,tar、zip、unzip 这些命令怎么用?本文把最常用的压缩解压命令都整理出来,一次讲清楚。
tar 命令(最常用)
tar 是 Linux 下最常用的打包压缩工具,支持 gzip、bzip2、xz 等多种压缩格式。
参数速记
| 参数 | 含义 |
|---|---|
-c |
创建新的打包文件 |
-x |
解压 |
-z |
用 gzip 压缩(.tar.gz) |
-j |
用 bzip2 压缩(.tar.bz2) |
-J |
用 xz 压缩(.tar.xz) |
-v |
显示过程 |
-f |
指定文件名(必须放最后) |
压缩成 .tar.gz
最常用的,把目录打包成 tar.gz:
tar -zcvf 打包名.tar.gz 要打包的目录
比如把 /var/www/html 打包成 backup.tar.gz:
tar -zcvf backup.tar.gz /var/www/html
解压 .tar.gz
tar -zxvf 文件名.tar.gz
比如:
tar -zxvf backup.tar.gz
解压到指定目录
加 -C 参数:
tar -zxvf backup.tar.gz -C /目标目录
比如解压到 /tmp 目录:
tar -zxvf backup.tar.gz -C /tmp
只看不解压
tar -ztvf 文件名.tar.gz
列出压缩包里的文件列表,不解压。
.tar.bz2 格式
比 gzip 压缩率更高,但更慢:
# 压缩
tar -jcvf backup.tar.bz2 /var/www/html
# 解压
tar -jxvf backup.tar.bz2
.tar.xz 格式
压缩率最高,最慢:
# 压缩
tar -Jcvf backup.tar.xz /var/www/html
# 解压
tar -Jxvf backup.tar.xz
zip 和 unzip
安装
CentOS 最小化安装可能没有 zip/unzip:
yum install -y zip unzip
压缩成 zip
zip -r 打包名.zip 要打包的目录
比如:
zip -r backup.zip /var/www/html
-r 是递归,把目录下所有文件都打进去。
解压 zip
unzip 文件名.zip
比如:
unzip backup.zip
解压到指定目录
unzip 文件名.zip -d /目标目录
比如解压到 /tmp:
unzip backup.zip -d /tmp
只看不解压
unzip -l 文件名.zip
列出 zip 包里的文件列表。
解压到指定目录并覆盖
unzip -o 文件名.zip -d /目标目录
-o 是覆盖,不提示。
其他压缩格式
gz 格式(单文件压缩)
# 压缩
gzip 文件名
# 解压
gunzip 文件名.gz
bz2 格式
# 压缩
bzip2 文件名
# 解压
bunzip2 文件名.bz2
常见坑
坑1:解压后目录结构不对
解压完发现多套了一层目录。
原因: 打包的时候是带路径打的。
解决: 解压前先看一下压缩包里的结构:
tar -ztvf 文件名.tar.gz
或者 zip 用:
unzip -l 文件名.zip
坑2:解压时磁盘空间不足
解压到一半报错 No space left on device。
原因: 磁盘满了。
解决: 先看一下磁盘空间:
df -h
清理空间后再解压。
坑3:tar 参数顺序不对
执行 tar 报错。
原因: -f 参数必须放最后,后面紧跟文件名。
正确写法: tar -zcvf backup.tar.gz /目录
错误写法: tar -fzc backup.tar.gz /目录
坑4:zip 命令找不到
执行 zip 提示 command not found。
原因: 没装 zip 包。
解决:
yum install -y zip unzip
总结
| 格式 | 压缩命令 | 解压命令 |
|---|---|---|
| .tar.gz | tar -zcvf 名.tar.gz 目录 |
tar -zxvf 名.tar.gz |
| .tar.bz2 | tar -jcvf 名.tar.bz2 目录 |
tar -jxvf 名.tar.bz2 |
| .zip | zip -r 名.zip 目录 |
unzip 名.zip |
| .gz | gzip 文件名 |
gunzip 文件名.gz |
最常用的就是 tar -zcvf 压缩 和 tar -zxvf 解压,记住这两个就够用了。
遇到问题加QQ23979811 协助处理
Linux 压缩命令大全
Linux 常用压缩命令大全
Linux 下压缩解压命令很多,记不住每次都要搜,整理一份常用清单。
1. tar 命令(最常用)
tar 是 Linux 最常用的打包工具,可以配合不同压缩格式。
打包不压缩:
# 打包
tar -cvf blog.tar /www/wwwroot/blog/
# 解包
tar -xvf blog.tar
参数说明:
- -c:创建打包文件
- -x:解包
- -v:显示过程
- -f:指定文件名
2. tar.gz 格式(最常用)
# 压缩
tar -zcvf blog.tar.gz /www/wwwroot/blog/
# 解压
tar -zxvf blog.tar.gz
# 解压到指定目录
tar -zxvf blog.tar.gz -C /data/backup/
-z 就是用 gzip 压缩,这是最常用的格式。
3. tar.bz2 格式(压缩率更高)
# 压缩(体积更小,但更慢)
tar -jcvf blog.tar.bz2 /www/wwwroot/blog/
# 解压
tar -jxvf blog.tar.bz2
4. zip 格式
# 压缩
zip -r blog.zip /www/wwwroot/blog/
# 解压
unzip blog.zip
# 解压到指定目录
unzip blog.zip -d /data/backup/
Windows 用户常用 zip 格式,跨平台方便。
5. gz 格式
# 压缩(单个文件)
gzip file.log
# 解压
gunzip file.log.gz
gzip 只能压单个文件,一般和 tar 配合用。
6. 查看压缩包内容
# 查看 tar 包内容
tar -tvf blog.tar
# 查看 tar.gz 包内容
tar -ztvf blog.tar.gz
# 查看 zip 包内容
unzip -l blog.zip
7. 常用场景示例
备份网站文件:
tar -zcvf backup_$(date +%Y%m%d).tar.gz /www/wwwroot/blog/
备份数据库:
mysqldump -u root -p123456 blog | gzip > db_$(date +%Y%m%d).sql.gz
传输文件压缩:
tar -zcvf - /www/wwwroot/blog/ | ssh root@192.168.1.100 "tar -zxvf - -C /backup/"
8. 总结
| 格式 | 压缩率 | 速度 | 命令 |
|---|---|---|---|
| tar.gz | 中 | 快 | tar -z |
| tar.bz2 | 高 | 慢 | tar -j |
| zip | 中 | 中 | zip/unzip |
| tar | 无 | 最快 | tar |
日常用 tar.gz 就够了,跨平台用 zip,追求小体积用 bz2。