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
。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论