tar -czvf 压缩包名.tar.gz 文件夹名
,2. 使用zip压缩:zip -r 压缩包名.zip 文件夹名
,3. 使用7z高压缩率:7z a 压缩包名.7z 文件夹名
核心工具:tar
命令
tar
(Tape Archive)是 Linux 下归档文件的基石工具,通常结合压缩算法(如 gzip、bzip2、xz)使用。
基础语法:
tar [选项] [压缩文件名] [待压缩文件夹]
压缩为 .tar.gz
(gzip 格式)
- 特点:速度快、通用性强
- 命令:
tar -czvf 压缩包名称.tar.gz 文件夹路径/
-c
:创建新压缩包-z
:调用 gzip 压缩-v
:显示压缩过程(可选)-f
:指定压缩文件名
压缩为 .tar.bz2
(bzip2 格式)
- 特点:压缩率高于 gzip,速度稍慢
- 命令:
tar -cjvf 压缩包名称.tar.bz2 文件夹路径/
-j
:调用 bzip2 压缩
压缩为 .tar.xz
(xz 格式)
- 特点:最高压缩率,适合大文件
- 命令:
tar -cJvf 压缩包名称.tar.xz 文件夹路径/
-J
:调用 xz 压缩
其他常用压缩工具
zip
工具(跨平台兼容)
- 适用场景:需在 Windows/macOS 中解压
- 安装(如未预装):
sudo apt install zip # Debian/Ubuntu sudo yum install zip # CentOS/RHEL
- 压缩命令:
zip -r 压缩包名称.zip 文件夹路径/
-r
:递归压缩子目录
7z
工具(超高压缩率)
- 安装:
sudo apt install p7zip-full # Debian/Ubuntu sudo yum install p7zip-plugins # CentOS/RHEL
- 压缩命令:
7z a -t7z 压缩包名称.7z 文件夹路径/
a
:添加文件到压缩包-t7z
:指定 7z 格式(可省略)
高级操作技巧
排除特定文件/目录
tar -czvf backup.tar.gz --exclude='*.log' --exclude='tmp/' 文件夹路径/
--exclude='模式'
:按通配符忽略文件(如*.tmp
)或目录(如cache/
)
分卷压缩大文件
tar -czvf - 文件夹路径/ | split -b 2G - 压缩包前缀.tar.gz.
- 输出
压缩包前缀.tar.gz.aa
,压缩包前缀.tar.gz.ab
等 -b 2G
:每卷大小设为 2GB(可调整)
保留文件权限与属性
tar -cpzvf backup.tar.gz 文件夹路径/
-p
:保留原始权限(常用于系统备份)
解压操作参考
压缩格式 | 解压命令 |
---|---|
.tar.gz |
tar -xzvf 文件.tar.gz |
.tar.bz2 |
tar -xjvf 文件.tar.bz2 |
.tar.xz |
tar -xJvf 文件.tar.xz |
.zip |
unzip 文件.zip |
.7z |
7z x 文件.7z |
格式选择建议
场景 | 推荐格式 | 理由 |
---|---|---|
快速压缩/通用传输 | .tar.gz |
速度快,兼容性极佳 |
有限空间存储 | .tar.xz |
超高压缩率 |
跨平台共享(非Linux) | .zip |
Windows/macOS 无需额外工具 |
超大文件归档 | .tar.bz2 |
平衡压缩率与资源占用 |
注意事项
- 路径规范:
- 压缩时建议进入目标目录的父目录操作(避免压缩包包含冗长路径)
cd /path/to/parent/ tar -czvf output.tar.gz target_folder/
- 压缩时建议进入目标目录的父目录操作(避免压缩包包含冗长路径)
- 空间检查:
- 压缩前用
df -h
确认磁盘空间充足
- 压缩前用
- 后台运行:
- 耗时任务可添加
nohup
或screen
防止中断nohup tar -czvf large_data.tar.gz big_folder/ > log.txt &
- 耗时任务可添加
通过灵活组合这些命令,可高效完成各类文件夹压缩需求,建议根据实际场景(压缩率、时间、兼容性)选择最佳方案,复杂操作前先在小目录测试验证。
引用说明基于 GNU tar 官方文档、Linux man-pages 及 Filesystem Hierarchy Standard (FHS) 标准实践,命令测试环境为 Ubuntu 22.04/CentOS 7,核心工具均属开源生态标准组件。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/30807.html