目录
什么是 tar 压缩
tar 是 Unix/Linux 系统上常用的归档和压缩工具。它可以将多个文件打包成一个文件,并支持基本的压缩功能。tar 是 Tape ARchive 的缩写,最初是为磁带存储设计的,但现在也广泛应用于磁盘文件的归档和压缩。
使用 tar 可以非常方便地对文件夹进行备份、迁移和存储。它不仅能够将多个文件打包成一个文件,还能够对文件进行压缩,大大减小文件的体积。
tar 基本用法
创建 tar 压缩包
使用 tar
命令可以非常方便地创建压缩包。基本语法如下:
tar -cf 压缩包名.tar 文件或目录1 文件或目录2 …
其中:
-c
: 创建新的 tar 压缩包-f
: 指定输出文件名
例如,将当前目录下的 docs
和 images
文件夹打包成 backup.tar
:
tar -cf backup.tar docs images
解压 tar 压缩包
使用 tar
命令也可以轻松地解压缩 tar 包。基本语法如下:
tar -xf 压缩包名.tar
其中:
-x
: 解压缩 tar 包
例如,解压 backup.tar
压缩包:
tar -xf backup.tar
常用 tar 命令参数
基本参数
-c
: 创建新的 tar 压缩包-x
: 解压缩 tar 包-f
: 指定输出文件名-v
: 显示详细信息-z
: 使用 gzip 压缩/解压缩-j
: 使用 bzip2 压缩/解压缩-J
: 使用 xz 压缩/解压缩
高级参数
-p
: 保留文件权限和属性-P
: 保留绝对路径-t
: 查看 tar 包内容-u
: 更新 tar 包内容-r
: 向 tar 包追加文件-W
: 校验 tar 包--exclude=FILE
: 排除指定文件--listed-incremental=FILE
: 增量备份
tar 压缩技巧
增量备份
使用 --listed-incremental=FILE
参数可以实现增量备份。这个参数会将备份信息记录到指定的文件中,下次备份时只会备份自上次备份以来修改过的文件。这样可以大大减少备份时间和占用的存储空间。
例如:
tar –listed-incremental=/tmp/backup.snar -czf backup.tar.gz /home
多卷备份
当需要备份的文件太大,无法一次性备份到单个 tar 包时,可以使用多卷备份的方式。使用 -M
参数可以将 tar 包分割成多个独立的卷。
例如:
tar -Mcf backup.tar.gz /home
这样会将 /home
目录备份到多个名为 backup.tar.gz.001
、backup.tar.gz.002
等的文件中。
压缩级别调整
tar 命令支持多种压缩算法,如 gzip、bzip2 和 xz,每种算法都有不同的压缩级别。通常情况下,压缩级别越高,压缩比越大,但压缩速度也越慢。可以根据实际需求选择合适的压缩级别。
例如,使用 gzip 压缩时,可以指定 -1
到 -9
的压缩级别:
tar -czf1 backup.tar.gz /home # 最快但压缩率最低 tar -czf9 backup.tar.gz /home # 最慢但压缩率最高
tar 压缩文件夹 FAQ
为什么要使用 tar 压缩?
- 文件备份和存储: tar 可以将多个文件打包成一个文件,便于备份和存储。
- 文件传输: tar 打包的文件可以更方便地进行网络传输或拷贝。
- 节省存储空间: tar 支持压缩功能,可以大幅减小文件体积,节省存储空间。
- 保留元数据: tar 可以保留文件的权限、属主等元数据信息。
tar 与 zip 有什么区别?
tar 和 zip 都是常用的文件归档和压缩工具,但有以下区别:
- 压缩算法: tar 本身不支持压缩,需要配合 gzip、bzip2 等压缩工具使用,而 zip 自带压缩功能。
- 跨平台性: zip 文件可以在 Windows、Linux 和 macOS 等多个操作系统上使用,而 tar 主要用于 Unix/Linux 系统。
- 文件属性保留: tar 可以保留文件的权限、属主等元数据信息,而 zip 不支持。
- 多卷备份: tar 支持将大文件拆分成多个卷进行备份,zip 不支持。
如何查看 tar 压缩包内容?
可以使用 tar -tf 压缩包名.tar
命令查看 tar 压缩包内的文件列表。如果是压缩过的 tar 包,可以使用 tar -tzf 压缩包名.tar.gz
命令。
tar 压缩包如何加密?
可以使用 gpg
命令对 tar 压缩包进行加密。具体步骤如下:
- 创建 tar 压缩包:
tar -czf backup.tar.gz /home
- 使用 gpg 加密:
gpg -c backup.tar.gz
- 这会生成一个加密后的
backup.tar.gz.gpg
文件
- 这会生成一个加密后的
- 解密时使用:
gpg -d backup.tar.gz.gpg | tar -xz
tar 压缩包如何分卷?
使用 -M
参数可以将 tar 压缩包分割成多个独立的卷。例如:
tar -Mcf backup.tar.gz /home
这样会将 /home
目录备份到多个名为 backup.tar.gz.001
、backup.tar.gz.002
等的文件中。
解压时只需要指定第一个卷文件即可:
tar -xf backup.tar.gz.001