【Linux基础】文件压缩tar命令指南

tar是Linux和Unix系统中用于归档文件的常用工具。它可以将多个文件或目录打包成一个归档文件(通常称为 tarball),并支持压缩功能。本文将详细介绍tar命令的用法、常见选项以及实际示例。

1 tar命令简介

tar最初用于将文件备份到磁带设备。主要用于创建、查看和解压归档文件,并支持多种压缩格式(如 .gz、.bz2、.xz 等)。

2 tar命令基本语法

tar [选项] [归档文件名] [文件或目录列表]
  • 选项:用于指定操作类型(如创建、解压、查看)和压缩方式
  • 归档文件名:生成的归档文件的名称
  • 文件或目录列表:需要归档的文件或目录

3 常用选项

3.1 操作类型

  • -c:创建新的归档文件
  • -x:从归档文件中解压文件
  • -t:列出归档文件的内容
  • -r:向归档文件中追加文件
  • -u:更新归档文件中的文件(仅添加比归档文件中更新的文件)

3.2 压缩选项

  • -z:使用gzip压缩(生成 .tar.gz文件)
  • -j:使用bzip2压缩(生成.tar.bz2文件)
  • -J:使用xz压缩(生成.tar.xz文件)

3.3 其他选项

  • -v:显示操作过程的详细信息
  • -f:指定归档文件的名称
  • -C:指定解压文件的目标目录
  • --exclude:排除指定的文件或目录
  • -p:保留文件的权限和属性

4 tar命令示例

4.1 创建归档文件

# 将dir1和dir2打包成一个归档文件
tar -cvf test.tar dir1 dir2

4.2 创建并压缩归档文件

# 将dir1和dir2打包并用gzip压缩
tar -czvf test.tar.gz dir1 dir2

4.3 查看归档文件内容

# 列出test.tar.gz中的文件 
tar -tzvf test.tar.gz

4.4 解压归档文件

# 解压test.tar.gz中的所有文件 
tar -xzvf test.tar.gz

4.5 解压到指定目录

# 将test.tar.gz中的文件解压到/export/home/data/tar目录
tar -xzvf test.tar.gz -C /export/home/data/tar

4.6 向归档文件中追加文件

# 将file3追加到test.tar中 
tar -rvf test.tar file3

4.7 更新归档文件

# 将test.tar中比file4旧的文件更新为file4 
tar -uvf test.tar file4

4.8 排除文件

# 打包dir1和dir2,但排除dir1/file1 
tar -cvf test.tar --exclude=dir1/file1 dir1 dir2

5 tar压缩格式对比

压缩格式

命令选项

文件扩展名

压缩率

速度

无压缩

-cvf

.tar

最快

gzip

-czvf

.tar.gz

中等

较快

bzip2

-cjvf

.tar.bz2

较高

较慢

xz

-cJvf

.tar.xz

最高

最慢

6 tar高级用法

6.1 分卷压缩

# 将大文件分卷压缩为多个小文件(每个文件 100MB) 
tar -czvf - dir1 | split -b 100M - test.tar.gz

6.2 解压分卷文件

# 将分卷文件合并并解压 
cat test.tar.gz.* | tar -xzvf -

6.3 保留文件权限

# 在解压归档文件时保留文件的权限和属性 
tar -xzvpf test.tar.gz

6.4 仅解压特定文件

# 从归档文件中解压特定文件(如file1和file2) 
tar -xzvf test.tar.gz file1 file2

7 总结

tar是一个功能强大的文件归档工具,支持多种压缩格式和高级功能。通过掌握tar的基本用法和常见选项,可以轻松完成文件的打包、压缩、解压等操作。

你可能感兴趣的:(Linux,技术探索与实践,linux,文件打包压缩,tar)