tar 压缩与解压入门:打包、压缩与备份常用命令
在 Linux 服务器上工作,几乎每天都会遇到 tar:下载的源码包是 .tar.gz,备份网站目录要用 tar,迁移数据也要用到它。tar 的名字来自 Tape Archive(磁带归档),最初是把多个文件打包成一个文件;后来人们又给它加上了 gzip、bzip2、xz 等压缩能力,于是 tar 成了“打包 + 压缩”二合一的工具。本文用最常用的命令,讲清打包、压缩、解压和备份。
一、打包与解压:四个最常用的选项
tar 的核心选项只有几个字母:c 创建归档、x 解开归档、t 列出内容、v 显示过程,再加上 f 指定文件名。下面四条命令覆盖了九成日常需求:
tar -cvf backup.tar /home/user/docs
tar -xvf backup.tar
tar -tvf backup.tar
tar -xvf backup.tar -C /tmp/restore
第一条把 docs 目录打包成 backup.tar,只打包不压缩;第二条把包解开到当前目录;第三条不解开,先看包里有什么;第四条把包解压到指定目录,而不是当前目录。记住一个口诀:打包用 c,解包用 x,查看用 t,f 后面永远跟文件名。
二、压缩与解压:gzip、bzip2、xz 怎么选
只打包不压缩时文件体积不变,加上压缩选项可以大幅缩小体积:
tar -czvf backup.tar.gz /home/user/docs
tar -cjvf backup.tar.bz2 /home/user/docs
tar -cJvf backup.tar.xz /home/user/docs
z 对应 gzip,速度最快、兼容性最好;j 对应 bzip2,体积更小、速度稍慢;J 对应 xz,压缩率最高,适合长期保存。解压时对应的选项也是 z、j、J,例如 tar -xzvf backup.tar.gz;现代 tar 甚至能自动识别压缩格式,直接 tar -xvf backup.tar.gz 同样可以解开。日常下载的 .tar.gz 源码包,用这一条命令就够了。
三、备份实战:打包前先排除不需要的文件
真正做备份时,很少会原样打包整个目录,日志、缓存和临时文件通常要排除:
tar -czvf www-backup.tar.gz --exclude='*.log' --exclude='cache' /var/www/html
tar -czvf etc-backup-$(date +%F).tar.gz /etc
tar -czvf - /home/user/docs | split -b 100M - docs-part-
第一条排除日志和缓存目录;第二条在文件名里带上日期,方便按天管理备份;第三条把大备份切成 100MB 的小块,便于拷贝到 U 盘或上传网盘。备份完成后别忘了验证:tar -tzvf www-backup.tar.gz | head 可以快速检查包是否完整、内容是否正确,确认无误再删除源文件或转移备份。
四、常见问题与注意事项
第一,解压时注意路径:tar 默认按包内记录的相对路径解压,解压前用 t 看一眼,避免文件散落到不该去的地方;第二,打包系统目录时加上 -p 保留文件权限,否则恢复后可执行文件可能丢失权限;第三,解压大文件时加上 --checkpoint,每隔一段时间打印进度,心里有数;第四,压缩格式不是越新越好,.tar.gz 在任何 Linux 发行版上都能解开,兼容性永远是第一位的。
小结
tar 的命令看似字母组合难记,其实逻辑很简单:c 打包、x 解包、t 查看,z、j、J 分别对应 gzip、bzip2、xz。掌握这几个选项,加上 --exclude 排除和 -C 指定目录,就能应付打包、解压和备份的大部分场景。建议把常用的备份命令写进一个小脚本,再配合定时任务,备份就不再是临时抱佛脚,而是一件自动完成的事。
- 点赞
- 收藏
- 关注作者
评论(0)