tar — 打包归档工具

tar 用于创建、查看和提取归档文件(通常与压缩算法结合使用)。

命令说明

tar 将多个文件和目录打包为一个归档文件(tarball)。它本身不进行压缩,但可以通过参数调用 gzip、bzip2、xz 等压缩工具。常见的扩展名有 .tar(不压缩)、.tar.gz/.tgz(gzip)、.tar.bz2(bzip2)、.tar.xz(xz)。

应用场景

  • 项目打包分发
  • 备份文件和目录
  • 传输多个文件的便捷方式
  • 提取源码包
  • 创建压缩归档

常用示例

示例 1:创建 tar 归档

bash
复制代码
tar -cf project.tar project/

示例 2:创建 gzip 压缩归档

bash
复制代码
tar -czf project.tar.gz project/

示例 3:创建 bzip2 压缩归档

bash
复制代码
tar -cjf project.tar.bz2 project/

示例 4:创建 xz 压缩归档

bash
复制代码
tar -cJf project.tar.xz project/

示例 5:查看归档内容(不解压)

bash
复制代码
tar -tf project.tar.gz
plaintext
复制代码
project/
project/src/
project/src/main.py
project/README.md

示例 6:提取归档

bash
复制代码
tar -xf project.tar.gz

示例 7:提取到指定目录

bash
复制代码
tar -xf project.tar.gz -C /tmp/extract/

示例 8:提取单个文件

bash
复制代码
tar -xf project.tar.gz project/src/main.py

示例 9:创建归档时排除文件

bash
复制代码
tar -czf backup.tar.gz --exclude='*.log' --exclude='node_modules' project/

示例 10:显示详细信息

bash
复制代码
tar -czvf project.tar.gz project/
plaintext
复制代码
project/
project/src/
project/src/main.py
project/README.md

help 参数详解

主操作模式:

参数 长参数 说明
-c --create 创建新归档
-t --list 查看归档内容
-x --extract 提取归档
-r --append 向归档中追加文件
-u --update 更新归档中的文件
-d --diff 比较归档与文件系统

压缩选项:

参数 长参数 说明
-z --gzip 使用 gzip 压缩
-j --bzip2 使用 bzip2 压缩
-J --xz 使用 xz 压缩
-Z --compress 使用 compress 压缩
-a --auto-compress 根据扩展名自动选择压缩方式

其他选项:

参数 长参数 说明
-f FILE --file=FILE 指定归档文件名
-v --verbose 显示处理文件列表
-C DIR --directory=DIR 切换到指定目录操作
-p --preserve-permissions 保留文件权限
--exclude=PATTERN 排除匹配模式的文件
--include=PATTERN 包含匹配模式的文件
--strip-components=N 提取时忽略前 N 层目录
-P --absolute-names 使用绝对路径(不推荐)
--totals 显示总字节数
--wildcards 在排除/包含模式中使用通配符