1. zip 和 unzip(处理 .zip 文件)
压缩文件夹
zip -r 压缩包名.zip 文件夹名
-r
: 递归压缩子目录内容。示例:
zip -r myarchive.zip mydir
解压文件
unzip 压缩包名.zip -d 目标目录
-d
: 指定解压目录(默认当前目录)。示例:
unzip myarchive.zip -d /path/to/extract
查看压缩包内容
unzip -l 压缩包名.zip
2. tar(处理 .tar、.tar.gz、.tar.bz2 等文件)
打包与压缩
-
普通打包(不压缩):
tar -cvf 包名.tar 文件夹名
-
使用 gzip 压缩(.tar.gz):
tar -czvf 压缩包名.tar.gz 文件夹名
-
使用 bzip2 压缩(.tar.bz2):
tar -cjvf 压缩包名.tar.bz2 文件夹名
-
选项说明:
-
-c
: 创建压缩包。 -
-z
: 使用 gzip 压缩。 -
-j
: 使用 bzip2 压缩。 -
-v
: 显示详细过程。 -
-f
: 指定文件名(必须放在最后)。
-
解压
-
通用解压(自动检测压缩类型):
tar -xvf 压缩包名.tar.gz -C 目标目录
-
指定解压目录:
tar -xvf 压缩包名.tar.gz -C /target/directory
-
解压特定格式:
-
.tar.gz
:tar -xzvf 压缩包名.tar.gz
-
.tar.bz2
:tar -xjvf 压缩包名.tar.bz2
-
查看压缩包内容
tar -tvf 压缩包名.tar.gz
常用场景对比
操作 | 命令 |
---|---|
压缩文件夹为 .zip | zip -r mydir.zip mydir |
解压 .zip 到指定目录 | unzip mydir.zip -d /target |
打包并压缩为 .tar.gz | tar -czvf mydir.tar.gz mydir |
解压 .tar.gz 到当前目录 | tar -xzvf mydir.tar.gz |
解压到指定目录 | tar -xvf mydir.tar.gz -C /target |
查看 .tar.gz 内容 | tar -tvf mydir.tar.gz |
注意事项
-
选项顺序:
-f
必须紧跟文件名(如tar -czvf 文件
)。 -
递归压缩:
zip
需要-r
包含子目录,tar
默认递归。 -
覆盖文件:
unzip
默认询问覆盖,添加-o
直接覆盖;tar
默认直接覆盖。 -
排除文件:
-
zip
:zip -r archive.zip dir -x "*.log"
-
tar
:tar -czvf archive.tar.gz dir --exclude="*.log"
-
压缩算法对比
格式 | 命令选项 | 特点 |
---|---|---|
.zip | zip | 通用,跨平台 |
.tar.gz | -z | 平衡速度与压缩率(gzip) |
.tar.bz2 | -j | 更高压缩率,较慢(bzip2) |
.tar.xz | -J | 最高压缩率,速度慢(xz) |
根据需求选择压缩格式:快速压缩用 .tar.gz
,高压缩率用 .tar.xz
或 .tar.bz2
。