Linux tar
命令详解
一、命令简介
tar
(Tape ARchive)是 Linux 和 UNIX 系统中常用的归档工具,用于打包多个文件或目录为一个 .tar
文件,并可结合压缩工具(如 gzip
、bzip2
、xz
)生成 .tar.gz
、.tar.bz2
等格式的压缩包。
虽然 tar
最初是为磁带设备设计的归档工具,但如今已广泛应用于本地文件打包、压缩传输、备份恢复等场景,是日常运维和开发中不可或缺的工具之一。
二、命令语法
tar [选项]... [文件]...
常见基本用法格式:
tar -cvf archive.tar file1 file2 dir/
tar -xvf archive.tar
tar -tzf archive.tar.gz
三、常用选项说明
选项 | 说明 |
---|---|
-c | 创建新归档(create) |
-x | 解包归档(extract) |
-t | 显示归档内容(list) |
-f <文件名> | 指定归档文件名(file) |
-v | 显示详细过程(verbose) |
-z | 使用 gzip 压缩或解压(.tar.gz ) |
-j | 使用 bzip2 压缩或解压(.tar.bz2 ) |
-J | 使用 xz 压缩或解压(.tar.xz ) |
-C <目录> | 解压到指定目录 |
--exclude=<模式> | 排除匹配的文件或目录 |
--remove-files | 打包后删除原文件(归档后清理) |
四、归档压缩操作示例
1. 创建 .tar
归档文件
tar -cvf backup.tar file1.txt file2.txt dir/
-
创建名为
backup.tar
的归档包。 -
包含两个文件和一个目录。
-
不压缩,仅打包。
2. 创建 .tar.gz
归档(gzip压缩)
tar -czvf backup.tar.gz /home/user/
-
-z
使用 gzip 压缩。 -
适合打包后直接传输或下载。
3. 创建 .tar.bz2
归档(bzip2压缩)
tar -cjvf backup.tar.bz2 mydata/
-
bzip2 压缩率高于 gzip,适合空间敏感的备份。
4. 创建 .tar.xz
归档(xz压缩)
tar -cJvf backup.tar.xz ./project/
-
xz 是压缩率最高但较慢的格式,适合归档归档长期存放数据。
5. 只打包,不压缩
tar -cvf myfiles.tar *.log
-
创建未压缩的
.tar
文件,适合只做归档(如备份)
五、解包解压操作示例
1. 解包 .tar
文件
tar -xvf archive.tar
-
将
archive.tar
解包到当前目录。
2. 解压 .tar.gz
文件
tar -xzvf archive.tar.gz
3. 解压 .tar.bz2
文件
tar -xjvf archive.tar.bz2
4. 解压 .tar.xz
文件
tar -xJvf archive.tar.xz
5. 解压到指定目录
tar -xvf archive.tar -C /tmp/myrestore/
-
使用
-C
指定解包目标目录。
六、查看归档内容
tar -tvf archive.tar
或压缩文件:
tar -tzvf archive.tar.gz
-
不解包,仅查看内容。
七、从归档中提取单个文件
tar -xvf archive.tar etc/hosts
-
仅提取
etc/hosts
文件(路径区分大小写)。
八、排除文件打包
tar -czvf backup.tar.gz /home/user --exclude=/home/user/cache
-
打包时排除指定目录或文件。
九、归档后删除原始文件
tar -czvf log.tar.gz *.log --remove-files
-
打包完成后自动删除源文件,常用于日志压缩归档。
十、典型应用场景
场景 | 示例 |
---|---|
网站备份 | 打包 /var/www/ 下所有网站文件 |
日志归档 | 定期将日志打包转存 |
发布部署 | 打包代码目录供其他主机下载 |
数据迁移 | 使用 tar 创建压缩包跨服务器传输 |
灾备还原 | 配合 cron 做定期打包备份 |
十一、与其他压缩工具比较
工具 | 特性 | 支持压缩格式 | 优势 |
---|---|---|---|
tar | 打包为主,配合压缩命令使用 | gzip、bzip2、xz | 打包/压缩一体化,灵活 |
zip/unzip | 打包压缩一体,常见于 Windows | zip | 跨平台好,支持解压软件多 |
gzip | 仅压缩单个文件 | .gz | 快速简单 |
xz | 高压缩比 | .xz | 适合存档保存 |
7z | 高压缩比、加密支持 | .7z | 功能强但依赖更多工具 |
十二、注意事项与技巧
-
.tar.gz
≠.gz
,前者是打包后压缩,后者仅压缩单个文件。 -
文件名中不要忘记
-f
后要紧跟归档文件名。 -
使用
--exclude
时路径应准确(绝对路径更稳妥)。 -
解压路径中应提前创建目录,确保目标文件不会覆盖现有数据。
-
可与
find
、xargs
、cron
等组合使用构建自动化脚本。
十三、总结
项目 | 内容 |
---|---|
命令 | tar |
作用 | 打包归档,结合压缩工具生成压缩包 |
常用压缩 | .tar.gz , .tar.bz2 , .tar.xz |
应用场景 | 数据备份、文件归档、跨主机传输 |
替代工具 | zip, gzip, 7z(可结合使用) |
操作建议 | 使用 -v 查看详情,-C 控制路径,--exclude 排除不需要的文件 |
tar
是 Linux 世界中无处不在的文件打包压缩工具,其灵活性和脚本友好性使其成为自动化任务和系统备份中的首选工具之一。掌握 tar
的多种使用方法,将显著提升你在 Linux 环境下的效率与可靠性。
这里是封面: