Skip to main content

tar 的常用命令

tar 是一个在 Linux 和其他类 Unix 系统上用于创建、解压和管理归档文件的命令。tar 文件通常被称为 tarballs,其文件扩展名为 .tar。在实际使用中,tar 通常与压缩工具结合使用,例如 gzip(扩展名 .gz)或 bzip2(扩展名 .bz2),以减少文件大小。

以下是 tar 命令的一些常用选项和示例:

基本选项

  • -c:创建新的归档文件。
  • -x:从归档文件中提取文件。
  • -t:列出归档文件的内容。
  • -v:显示详细信息(verbose),在处理文件时打印文件名。
  • -f:指定归档文件的名称。
  • -z:使用 gzip 压缩或解压。
  • -j:使用 bzip2 压缩或解压。
  • -J:使用 xz 压缩或解压。
  • -C<目的目录>或--directory=<目的目录>:切换到指定的目录。
  • -k或--keep-old-files:解开备份文件时,不覆盖已有的文件。

创建 tar 归档

# 创建未压缩的 tar 归档
tar -cvf archive.tar /path/to/directory

# 创建使用 gzip 压缩的 tar 归档
tar -cvzf archive.tar.gz /path/to/directory

# 创建使用 bzip2 压缩的 tar 归档
tar -cvjf archive.tar.bz2 /path/to/directory

# 创建使用 xz 压缩的 tar 归档
tar -cvJf archive.tar.xz /path/to/directory

提取 tar 归档

# 提取未压缩的 tar 归档
tar -xvf archive.tar

# 提取使用 gzip 压缩的 tar 归档
tar -xvzf archive.tar.gz

# 提取使用 bzip2 压缩的 tar 归档
tar -xvjf archive.tar.bz2

# 提取使用 xz 压缩的 tar 归档
tar -xvJf archive.tar.xz

列出 tar 归档的内容

# 列出未压缩的 tar 归档内容
tar -tvf archive.tar

# 列出使用 gzip 压缩的 tar 归档内容
tar -tvzf archive.tar.gz

# 列出使用 bzip2 压缩的 tar 归档内容
tar -tvjf archive.tar.bz2

# 列出使用 xz 压缩的 tar 归档内容
tar -tvJf archive.tar.xz

其他常用选项

  • -C:更改到指定目录以进行操作。例如,提取到特定目录:

    tar -xvzf archive.tar.gz -C /target/directory
  • --exclude:在创建归档时排除指定的文件或目录。例如:

    tar -cvzf archive.tar.gz /path/to/directory --exclude=/path/to/directory/exclude
  • -p:保留文件权限。

  • --remove-files:在归档后删除源文件。

    tar -cvf archive.tar /path/to/files --remove-files

示例

创建一个压缩的 tarball,并排除特定的目录:

tar -cvzf backup.tar.gz /home/user --exclude=/home/user/temp

提取 tarball 到指定的目录,并保留文件权限:

tar -xvzpf backup.tar.gz -C /restore/location