上一篇我们介绍了 Linux 压缩的基础命令,已覆盖日常90% 的场景。但面对批量处理、加密传输、分卷压缩、增量备份等复杂需求,高手往往借助更高效的技巧来提升效率、少走弯路。本文分享一些实用高级命令,适合在复杂场景下使用,建议收藏以备不时之需。
一、批量压缩 / 解压
1. 批量压缩多个目录
#批量压缩当前目录下所有文件夹为独立.tar.gz,为了避免生成隐藏文件,进行转换ls -d */ | sed 's/\/$//' | xargs -I {} tar -zcvf {}.tar.gz {}

2. 批量解压所有.tar.gz
#解压当前目录所有.gz包ls *.tar.gz | xargs -I {} tar -zxvf {}

3. 批量压缩并删除原文件(节省空间)
#压缩并删除sh目录,只压缩目录tar -czvf sh.tar.gz sh --remove-files
二、加密压缩(安全传输必备)
1. tar+gzip + 密码加密(无需额外工具)
#加密压缩,需要输入两次密码tar -czvf - backup/ | openssl enc -e -aes256 -out backup.tar.gz#解密解压openssl enc -d -aes256 -in backup.tar.gz | tar -zxvf -#backup.tar.gz是加密包,需要数据密码才能解压,-e加密,-d解密


对于重要文件需要注意密码强度并妥善保管。
2. zip 加密(Windows 通用)
zip -r -e var.zip var/ #输入两次密码unzip var.zip #输入密码解密


三、分卷压缩(大文件传输必备)
超大文件(>10GB)传输易出错,分卷最稳,适用于邮件附件、FTP 传输等场景。
#按1GB分卷压缩tar -czvf - iso/ | split -b 1G - iso.tar.gz.#合并解压cat iso.tar.gz.* | tar -zxvf -



四、增量备份(节省空间 + 高效备份)
只备份改动文件,适合日志 / 数据定期备份,首次需完整备份,后续依赖 snapshot 文件。
#首次全量备份tar -czvf full.tar.gz backup/ --listed-incremental snapshot.snar#增量备份(仅新增/修改文件)tar -czvf inc1.tar.gz backup/ --listed-incremental snapshot.snar#listed-incremental增量备份开关,snapshot.snar快照文件

五、高级参数 + 实战技巧
1. 排除不需要的文件 / 目录
#压缩时排除.log、tmp目录,这个比较有用,不停业备份程序,排除日志tar -czvf backup0401.tar.gz backup/ --exclude=*.log --exclude=/data/backup/sh/

2. 查看压缩包内容(不解压)
tar -tvf backup.tar.gz # 查看列表zipinfo backup.zip # 查看zip


3. 提取单个文件(不解压整个包)
tar -xzvf backup0401.tar.gz backup/10MB.bin #只提取10MB.bin
4. 多线程压缩(提速神器)
默认单线程,大文件慢!用 pigz(替代 gzip)
# 安装yum install pigz -y# 多线程压缩(-p指定线程数)tar -I 'pigz -p 8' -cvf file.tar.gz 目录/#多线程加速解压pigz -d -p 8 < isonew.tar.gz | tar -xvf -



六、避坑总结
1. 加密必记密码:openssl 加密无密码无法恢复;
2. 分卷合并顺序不能乱:必须按 aa、ab、ac 顺序合并;
3. 增量备份保留 snapshot 文件:它是增量依据,删除=失效;
4. 多线程压缩更吃 CPU:服务器空闲时用,避免影响业务。