> 压缩与归档 > tar

tar: 创建和解压文件归档

一个用于将多个文件和目录打包成一个 .tar 文件(归档)或将已打包文件解压(提取)的必备工具。常与 Gzip (-z) 或 Bzip2 (-j) 等压缩功能结合使用。

tar 是什么?

tar 是 'Tape Archive' 的缩写,最初是为了将数据备份到磁带而创建的。现在,它被用作 Linux 标准工具,用于将多个文件和目录打包成一个文件,以便于管理和传输。tar 本身只负责打包文件,压缩功能通过单独的选项(-z, -j, -J)指定。

核心操作模式

tar 一次只执行一种主要模式(创建、提取、列出)。

  • -c (Create): 创建新的归档文件。
  • -x (Extract): 从归档文件中提取文件。
  • -t (List): 查看归档文件的内容(列表),无需解压。
  • -f (File): 指定要操作的归档“文件”。几乎所有操作都必需此选项。

主要选项 (Shell)

tar 通过组合选项来使用。最重要的是选择 `-c`, `-x`, `-t` 中的一个。

1. 操作模式 (选择其一)

2. 文件和压缩指定

3. 目标和附加功能

生成的命令:

请尝试组合命令。

描述:

`tar` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用场景示例 (Shell)

最常用的组合示例。(选项前的 `-` 可以省略,但建议明确指定。)

使用 gzip 创建压缩文件 (.tar.gz)

tar -cvzf backup.tar.gz /home/user/data

c(创建), v(过程), z(gzip), f(文件) + [结果文件] + [目标]

解压 gzip 压缩文件 (.tar.gz)

tar -xvzf backup.tar.gz

x(提取), v(过程), z(gzip), f(文件) + [目标文件]

查看压缩文件内容列表 (.tar.gz)

tar -tvf backup.tar.gz

t(列表), v(过程), f(文件) (最新版 tar 会自动检测 -z)

解压到指定目录

tar -xvzf backup.tar.gz -C /opt/restore

使用 -C 选项指定路径。

使用 bzip2 创建压缩文件 (.tar.bz2)

tar -cvjf archive.tar.bz2 ./docs

使用 j(bzip2) 选项代替 z。

解压 bzip2 压缩文件 (.tar.bz2)

tar -xvjf archive.tar.bz2

排除特定文件/目录进行压缩

tar -cvzf app.tar.gz ./app --exclude="*.log" --exclude="node_modules"

使用 --exclude 选项。(可多次使用)

安装

tar 几乎预装在所有 Linux 发行版(和 macOS)中。(通常是 GNU tar)。如果因某种原因需要安装,可以使用 'tar' 包名进行安装。

已默认安装

几乎不需要单独安装。尝试输入 `tar --version` 查看版本。

Debian/Ubuntu (如有需要)

sudo apt update && sudo apt install -y tar

RHEL/CentOS/Fedora (如有需要)

sudo dnf install -y tar

提示与注意事项

实用技巧

  • 省略连字符(-): 根据旧习惯,可以在第一个选项组中省略连字符,例如 `tar cvf ...`。(例如:`tar cvf` = `tar -cvf`)但为了清晰起见,建议加上 `-`。
  • 自动检测压缩格式: 最新版 `tar` 在提取 (-x) 时,即使没有 `-z`、`-j`、`-J` 选项,也能根据文件扩展名自动检测压缩格式。(例如,只需输入 `tar -xf archive.tar.gz` 即可。)
  • 保留权限 (-p): 系统备份后恢复时,使用 `-p` 选项保留文件权限和所有权非常重要。
  • 路径问题 (-C): 如果想将文件解压到当前位置以外的其他地方,使用 `-C /路径` 选项比移动文件效率更高。
  • 绝对路径注意事项: 创建 (-c) 时,如果使用 `/home/user` 这样的绝对路径打包文件,那么在提取 (-x) 时,文件也会解压到相同的绝对路径。(最新版 tar 出于安全考虑可能会去除开头的 `/`)尽可能使用相对路径打包更安全,例如 `cd /home && tar -cvf user.tar ./user`。

相关命令

功能上相似或经常一起使用的命令。



相同类别命令