linux中 tar 压缩 解压 核心为三步:打包、选 算法、指定目标;常用命令如 tar -czvf backup.tar.gz config/ logs/,支持排除文件、指定解压路径及多种压缩格式选择。

Linux 里用 tar 压缩和 解压 文件,核心就三步:打包、选压缩算法、指定目标。不用装额外软件,系统自带,日常备份、传文件、部署服务都靠它。
压缩多个文件夹(最常用)
想把当前目录下的几个文件夹一起打包压缩,比如要备份 config 和logs两个目录:
- 命令写法:
tar -czvf backup.tar.gz config/ logs/ - -c 表示创建新归档,-z 表示用 gzip 压缩(生成。tar.gz),-v 显示过程,-f 后面必须紧跟文件名
- 路径可以是相对路径(如上面的
config/),也可以是绝对路径(如/etc/nginx/),但用绝对路径时,解压到原位置需有对应权限
排除不需要的文件再压缩
临时文件、缓存目录、日志碎片这些通常不用备份,加 --exclude 跳过即可:
- 单个排除:
tar -czvf project.tar.gz --exclude='*.log' project/(跳过所有。log 文件) - 多个排除:
tar -czvf data.tar.gz --exclude='temp/' --exclude='*.tmp' dirA/ dirB/ - 从文件读排除列表:把要跳过的路径写进
exclude.list,每行一个,然后运行tar -czvf out.tar.gz --exclude-from=exclude.list /path/to/data
解压到指定位置
默认解压到当前目录,但多数时候你希望放到 /opt 或/var/www这类固定路径:
- 解压到其他目录 :
tar -xzvf archive.tar.gz -C /opt/app/(注意-C后直接跟路径,不加空格) - 只看内容不解压:
tar -tzvf archive.tar.gz,适合检查包里有没有漏文件或路径是否正确 - 如果解压报“Permission denied”,先确认目标目录存在且当前用户有写权限,必要时加
sudo
不同压缩格式怎么选
tar 本身只打包,真正压缩靠后面参数决定效率和体积:
- .tar.gz(-z):通用性最好,速度快,压缩率中等,日常首选
- .tar.bz2(-j):压缩率比 gzip 高约 10%–15%,但更慢,适合大文件归档
- .tar.xz(-J):压缩率最高,特别适合长期存档,但耗 CPU 多、速度慢
- 解压时参数要和压缩时一致,比如用
-J压缩的,就得用tar -Jxvf解