tar 是 Linux 系统中用于 打包、压缩、解压文件 的核心命令之一。它可以将多个文件或目录合并为一个归档文件(通常称为 .tar 文件),并支持通过不同的压缩算法进一步压缩(如 .tar.gz, .tar.bz2 等)。
基本语法
1
| tar [选项] [文件名] [文件/目录...]
|
常用选项
| 选项 |
功能 |
-c |
创建新的归档文件(Create) |
-x |
解压归档文件(eXtract) |
-t |
查看归档文件内容列表(Table of contents) |
-v |
显示操作过程的详细信息(Verbose) |
-f |
指定归档文件名(File) |
-z |
使用 gzip 压缩(如 .tar.gz) |
-j |
使用 bzip2 压缩(如 .tar.bz2) |
-J |
使用 xz 压缩(如 .tar.xz) |
-C |
解压到指定目录(Change directory) |
--exclude |
排除指定文件/目录 |
常用场景示例
1. 打包文件/目录
1
| tar -cvf archive.tar file1.txt dir1/
|
-c: 创建归档文件
-v: 显示详细信息
-f archive.tar: 指定归档文件名为 archive.tar
- 最后列出要打包的文件或目录(如
file1.txt 和 dir1/)
2. 解压归档文件
-x: 解压操作
-f archive.tar: 指定要解压的文件
3. 压缩为 .tar.gz (gzip)
1
| tar -czvf archive.tar.gz file1.txt dir1/
|
-z: 使用 gzip 压缩,适合快速压缩,压缩率中等。
4. 压缩为 .tar.bz2 (bzip2)
1
| tar -cjvf archive.tar.bz2 file1.txt dir1/
|
-j: 使用 bzip2 压缩,压缩率高但速度较慢。
5. 压缩为 .tar.xz (xz)
1
| tar -cJvf archive.tar.xz file1.txt dir1/
|
-J: 使用 xz 压缩,压缩率极高,但速度最慢。
6. 查看归档内容
7. 解压到指定目录
1
| tar -xvf archive.tar -C /target/directory/
|
8. 排除特定文件/目录
1
| tar -cvf archive.tar --exclude="*.log" dir1/
|
- 打包
dir1/ 目录时排除所有 .log 文件。
注意事项
-f 选项必须放在最后
错误示例:tar -fcv archive.tar
正确示例:tar -cvf archive.tar
压缩与解压选项需对应
例如:用 -z 压缩的文件需用 -z 解压(或直接让 tar 自动检测)。
保留文件权限
默认情况下,tar 会保留文件权限和属性。若需保留所有元数据(如 SELinux 上下文),可添加 --selinux 或 --xattrs 选项。
常用命令总结
| 功能 |
命令 |
| 打包 |
tar -cvf archive.tar files... |
| 解包 |
tar -xvf archive.tar |
| 打包并压缩(gzip) |
tar -czvf archive.tar.gz files... |
| 解压(gzip) |
tar -xzvf archive.tar.gz |
| 打包并压缩(bzip2) |
tar -cjvf archive.tar.bz2 files... |
| 解压(bzip2) |
tar -xjvf archive.tar.bz2 |