Tar 命令精华指南 | AI生成和翻译

Home 2026.02

tar 命令(“tape archive”的缩写)是一个基础的 Unix/Linux 工具,用于将多个文件和目录捆绑成一个单一的归档文件。以下是详细介绍:

Basic Concept

Tar 创建的归档文件可以保留文件 permissions(权限)、ownership(所有权)、directory structures(目录结构)和 timestamps(时间戳)。与压缩工具不同,tar 本身并不进行压缩——它只是将文件捆绑在一起。然而,它通常与 gzip 或 bzip2 等压缩工具配合使用。

Common Usage Patterns

Creating archives:

tar -cvf archive.tar files/          # Create archive
tar -czvf archive.tar.gz files/      # Create + gzip compress
tar -cjvf archive.tar.bz2 files/     # Create + bzip2 compress

Extracting archives:

tar -xvf archive.tar                 # Extract
tar -xzvf archive.tar.gz             # Extract gzipped
tar -xjvf archive.tar.bz2            # Extract bzip2'd
tar -xvf archive.tar -C /target/dir  # Extract to specific directory

Viewing contents:

tar -tvf archive.tar                 # List files without extracting
tar -tzvf archive.tar.gz             # List files in gzipped archive

Key Options

Practical Examples

Backup a directory:

tar -czvf backup-$(date +%Y%m%d).tar.gz /home/user/documents/

Extract specific files:

tar -xzvf archive.tar.gz file1.txt dir/file2.txt

Exclude certain files:

tar -czvf archive.tar.gz --exclude='*.log' --exclude='node_modules' project/

Extract to different location:

tar -xzvf archive.tar.gz -C /opt/extracted/

View file before extracting:

tar -tzvf archive.tar.gz | grep specific-file

Modern Simplification

现代版本的 tar 可以自动检测压缩格式,因此你通常可以省略压缩 flag:

tar -xvf archive.tar.gz    # Auto-detects gzip
tar -xvf archive.tar.bz2   # Auto-detects bzip2

Common Gotchas

在使用 -f 时,选项的顺序非常重要。文件名必须紧跟在 -f 之后,因此 tar -cvzf archive.tar.gz files/ 是有效的,但 tar -cvfz archive.tar.gz files/ 可能会报错。

解压时,tar 会保留原始的目录结构。如果归档中包含 folder/file.txt,它将创建该目录结构,而不仅仅是将 file.txt 提取到当前目录。


Back Donate