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解










