
在 Linux 下压缩文件夹,最常用的命令是 zip
,但根据不同的需求(如压缩率、速度、跨平台兼容性),也可以选择 tar
+ gzip
/xz
等组合
1:基本 zip
压缩(兼容 Windows/Mac)
# 压缩文件夹(含子目录)
zip -r 需要创建的压缩包名称.zip 需要压缩的文件夹(目标文件夹或者文件所在路径+目标文件或者文件夹)
# 示例:把 aixm 压缩成 aixm.zip
zip -r aixm.zip aixm
# 添加密码保护(会提示输入密码)
zip -re aixm.zip aixm
常用参数:
-r
:递归压缩(包括子目录)-e
:加密(会提示设置密码)-q
:静默模式(不显示压缩过程)-9
:最高压缩率(但速度慢)
方法 2:tar
+ gzip
(更高压缩率,Linux 常用)
# 压缩成 .tar.gz(兼容性好) tar -czvf 需要创建的压缩包名称.tar.gz 需要压缩的文件夹(目标文件夹或者文件所在路径+目标文件或者文件夹) # 示例: tar -czvf aixm.tar.gz aixm
参数解释:
-c
:创建压缩包-z
:使用 gzip 压缩或解压归档文件。-v
:显示详细的过程-f
:指定文件名-x: 解开已有的归档文件。
-t: 列出归档文件的内容。
-p: 保留原始文件的权限和其他属性。
-j: 使用 bzip2 压缩或解压归档文件。
-J: 使用 xz 压缩或解压归档文件。
-u: 更新归档文件,只添加那些比归档中的副本新的文件。
-a: 自动选择压缩方式(根据归档文件扩展名 .gz, .bz2 或 .xz)。
-C: 指定解压文件的目标目录。
-P 或 -p: 使用绝对路径而不是相对路径。
tar
+ xz
(极限压缩,适合大文件)
# 压缩成 .tar.xz(超高压縮,但速度慢) tar -cvJf axim.tar.xz aixm
适用场景:
需要最小化压缩包体积(比如发送大型数据集)
CPU 性能较强时可使用
对比总结
命令 | 压缩格式 | 特点 | 适用场景 |
---|---|---|---|
zip -r | .zip | 跨平台,支持密码 | 分享给 Windows/Mac 用户 |
tar -czvf | .tar.gz | 平衡压缩率和速度 | Linux 常规备份 |
tar -cvJf | .tar.xz | 超高压缩率,但耗时 | 存储大型静态数据 |
实用技巧
排除特定文件(比如临时文件):
zip -r archive.zip my_folder/ -x "*.tmp" "*.log"
分卷压缩(适合传输大文件):
zip -r -s 500m archive.zip my_folder/ # 每个分卷500MB
查看压缩包内容:
unzip -l archive.zip # 查看zip包内容 tar -tzvf archive.tar.gz # 查看tar.gz包内容
️ 注意事项
如果系统没有 zip/unzip,先安装:
sudo apt install zip unzip # Ubuntu/Debian sudo yum install zip unzip # CentOS/RHEL
路径问题:建议在要压缩的文件夹上级目录执行命令,避免压缩包包含冗长路径。