tar
(Tape Archive)是 Linux/Unix 系统的归档打包工具,常与压缩算法(如 gzip、bzip2)结合使用,实现高效的文件压缩与解压,其核心功能包括:
- 归档:将多个文件/目录合并为单个
.tar
文件(未压缩)。 - 压缩:通过附加工具(如
gzip
、bzip2
)对归档文件进行压缩,生成.tar.gz
、.tar.bz2
等格式。
最常用压缩命令格式
压缩为 .tar.gz
格式(推荐通用格式)
tar -czvf 压缩包名称.tar.gz 要压缩的文件或目录
- 参数解析:
-c
:创建新的压缩包(Create)-z
:使用gzip
压缩(高兼容性,速度较快)-v
:显示压缩过程(Verbose,可选)-f
:指定压缩包文件名(必须放在最后)
- 示例:
tar -czvf project_backup.tar.gz /home/user/project
压缩为 .tar.bz2
格式(更高压缩率)
tar -cjvf 压缩包名称.tar.bz2 要压缩的文件或目录
- 参数差异:
-j
:使用bzip2
压缩(压缩率更高,耗时较长)
- 示例:
tar -cjvf photos.tar.bz2 /var/www/photos
压缩为 .tar.xz
格式(极致压缩率)
tar -cJvf 压缩包名称.tar.xz 要压缩的文件或目录
- 参数差异:
-J
:使用xz
压缩(压缩率最高,适合大文件)
- 示例:
tar -cJvf database_backup.tar.xz /data/mysql
关键操作技巧
排除特定文件/目录
tar -czvf backup.tar.gz --exclude="*.log" --exclude="tmp/" /path/to/dir
- 使用
--exclude=模式
跳过匹配文件(支持通配符 )。
压缩多个文件/目录
tar -czvf combined.tar.gz file1.txt dir1/ dir2/file2.conf
保留文件权限(适合备份系统文件)
tar -cpzvf system_backup.tar.gz /etc /var
-p
:保留文件原始权限属性。
解压命令对照表
压缩格式 | 解压命令 |
---|---|
.tar.gz / .tgz |
tar -xzvf 文件名.tar.gz |
.tar.bz2 |
tar -xjvf 文件名.tar.bz2 |
.tar.xz |
tar -xJvf 文件名.tar.xz |
纯 .tar 归档 |
tar -xvf 文件名.tar |
E-A-T 最佳实践建议
- 权限与安全:
- 压缩系统文件时使用
sudo
避免权限错误。 - 解压外来压缩包前用
tar -tf 包名
查看内容,防止路径覆盖攻击。
- 压缩系统文件时使用
- 空间管理:
- 压缩前用
du -sh 目录名
检查原始大小。 - 大文件优先用
-j
(bzip2)或-J
(xz)节省存储空间。
- 压缩前用
- 自动化备份:
# 每日备份脚本示例 tar -czvf /backups/$(date +%Y%m%d).tar.gz --exclude="cache/" /var/www
常见问题解决
-
报错
tar: Removing leading '/'
:
添加-P
参数保留绝对路径(谨慎使用),或改用相对路径。 -
加速压缩过程:
对大量小文件使用--use-compress-program=pigz
(多线程 gzip)。 -
跨平台兼容:
.tar.gz
格式在 Windows(WinRAR/7-Zip)、macOS 均可直接解压。
引用说明:
本文命令基于 GNU tar 1.34 验证,符合 POSIX 标准,参数规范参考 Linux man-pages 项目及 The Open Group 基础规范,实践建议来自 Linux 系统管理员经验总结及 IBM 技术文档。
扩展阅读:
- GNU tar 官方手册
- 《Linux 命令行与 shell 脚本编程大全(第4版)》(Richard Blum, Christine Bresnahan 著)
最后更新:2025年6月
适用系统:CentOS/RHEL, Ubuntu/Debian, macOS (BSD tar), 及其他 POSIX 兼容环境
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6583.html