Linux tar 命令详解:用于打包多个文件或目录为一个 .tar 文件
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.tartar -tzf archive.tar.gz
三、常用选项说明
-c
-x
-t
-f
-v
-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/
下所有网站文件cron
做定期打包备份十一、与其他压缩工具比较
tar
zip/unzip
gzip
xz
7z
十二、注意事项与技巧
-
.tar.gz
≠.gz
,前者是打包后压缩,后者仅压缩单个文件。 -
文件名中不要忘记
-f
后要紧跟归档文件名。 -
使用
--exclude
时路径应准确(绝对路径更稳妥)。 -
解压路径中应提前创建目录,确保目标文件不会覆盖现有数据。
-
可与
find
、xargs
、cron
等组合使用构建自动化脚本。
十三、总结
tar
.tar.gz
, .tar.bz2
, .tar.xz
-v
查看详情,-C
控制路径,--exclude
排除不需要的文件tar
是 Linux 世界中无处不在的文件打包压缩工具,其灵活性和脚本友好性使其成为自动化任务和系统备份中的首选工具之一。掌握 tar
的多种使用方法,将显著提升你在 Linux 环境下的效率与可靠性。
这里是封面: