linux中tar打包压缩需区分打包与压缩:-z(gzip)、-j(bzip2)、-j(xz)分别生成.tar.gz、.tar.bz2、.tar.xz;-c创建、-v显示过程、-f指定文件名,可加--exclude排除目录、-c指定解压路径、-p保留权限。

Linux 中用 tar 打包并压缩目录,关键在于分清“打包”和“压缩”是两个独立动作:tar 负责把目录结构、权限、时间戳等完整归档成一个文件;压缩则由 gzip、bzip2 等工具完成。命令中加一个参数(如 -z 或 -j),就是让 tar 自动调用对应压缩程序,一步到位。
打包并用 gzip 压缩(最常用)
生成 .tar.gz 文件,速度快、兼容性好,适合日常备份与传输:
-
打包压缩当前目录下的 /var/www:
tar -czvf www_backup.tar.gz /var/www -
带日期命名:
tar -czvf backup_$(date +%Y%m%d).tar.gz /opt/app -
排除日志和缓存:
tar -czvf app.tar.gz --exclude='logs' --exclude='cache' /opt/app
打包并用 bzip2 压缩(高压缩率)
生成 .tar.bz2 文件,体积更小,但耗时略长,适合长期归档或空间受限场景:
-
压缩 /var/log/nginx:
tar -cjvf nginx_logs.tar.bz2 /var/log/nginx -
解压到指定位置(目标目录需已存在):
tar -xjvf nginx_logs.tar.bz2 -C /tmp/logs
打包并用 xz 压缩(最高压缩率)
生成 .tar.xz 文件,压缩率优于 bzip2,适合对体积极度敏感的归档,但 CPU 和时间开销更大:
-
归档系统配置目录:
tar -cJvf etc_backup.tar.xz /etc -
解压时同样用 -J:
tar -xJvf etc_backup.tar.xz -C /backup/restore
只打包不压缩(快速归档)
生成纯 .tar 文件,体积不变,但保留全部元数据(权限、属主、软链接等),适合内部快速备份或后续手动压缩:
-
打包整个项目目录:
tar -cvf project.tar /home/user/project -
保留权限和符号链接(推荐加 -p):
tar -cpvf project_with_attr.tar /home/user/project -
查看内容确认是否正确:
tar -tvf project.tar | head -15











