tar 打包完全指南

目录

什么是 tar?

tar 是 Unix/Linux 系统中常用的归档工具,全称为 Tape ARchive。它可以将多个文件打包成一个文件,以便于存储和传输。tar 本身不具有压缩功能,但可以与其他压缩工具如 gzipbzip2 等配合使用,实现文件的压缩和解压缩。

基础用法

创建 tar 包

使用 tar 命令可以创建 tar 包。基本语法如下:

tar -cf <tar_file>




其中:

  • -c: 创建新的 tar 包
  • -f: 指定输出文件名称
  • <file1> 等: 需要打包的文件或目录

例如,将当前目录下的 file1.txtfile2.txtdir1 目录打包成 backup.tar:

tar -cf backup.tar file1.txt file2.txt dir1

解压 tar 包

使用 tar 命令可以解压 tar 包。基本语法如下:

tar -xf <tar_file>

其中:

  • -x: 解压 tar 包
  • -f: 指定 tar 包文件名称

例如,解压 backup.tar 包:

tar -xf backup.tar

查看 tar 包内容

使用 tar 命令可以查看 tar 包内的文件列表。基本语法如下:

tar -tf <tar_file>

其中:

  • -t: 列出 tar 包内的文件
  • -f: 指定 tar 包文件名称

例如,查看 backup.tar 包内的文件:

tar -tf backup.tar

进阶用法

排除文件/目录

在创建 tar 包时,可以排除某些文件或目录。使用 --exclude 选项指定要排除的文件或目录:

tar -cf backup.tar –exclude=’*.log’ –exclude=dir2 file1.txt dir1

上述命令会将 file1.txtdir1 目录打包到 backup.tar,但会排除所有 .log 文件和 dir2 目录。

压缩 tar 包

可以在创建 tar 包时直接对其进行压缩。常用的压缩方式有 gzipbzip2xz。使用 -z-j-J 选项指定压缩方式:

tar -czf backup.tar.gz file1.txt dir1

tar -cjf backup.tar.bz2 file1.txt dir1

tar -cJf backup.tar.xz file1.txt dir1

分卷备份

当需要备份的文件太大时,可以将 tar 包分成多个卷。使用 -M 选项指定分卷备份:

tar -cf – file1.txt dir1 | split -b 2000m – backup.tar.

上述命令会将 file1.txtdir1 打包成 backup.tar.aabackup.tar.ab 等分卷文件,每个文件大小约为 2GB。

保留文件属性

在创建 tar 包时,可以保留文件的属性信息,如所有者、权限等。使用 -p 选项:

tar -cpf backup.tar file1.txt dir1

保留软链接

在创建 tar 包时,可以保留软链接。使用 -h 选项:

tar -chf backup.tar symlink.txt dir1

常见问题

如何创建加密的 tar 包?

可以使用 gpg 工具对 tar 包进行加密。先创建 tar 包,然后使用 gpg 进行加密:

tar -cf backup.tar file1.txt dir1 gpg -c backup.tar

如何增量备份?

可以使用 –listed-incremental 选项进行增量备份。它会将上次备份的文件信息保存在一个特殊的 .snar 文件中,下次备份时只会备份自上次备份以来修改的文件。

tar -g backup.snar -caf backup.tar.gz file1.txt dir1

tar -g backup.snar -caf backup.tar.gz file1.txt dir1

tar 包太大怎么办?

如果 tar 包太大,可以考虑以下方法:

  • 使用分卷备份
  • 采用更高压缩比的压缩算法,如 xz
  • 排除不必要的文件或目录
  • 增量备份

tar 包如何传输?

可以使用以下方法传输 tar 包:

  • 通过网络传输,如 scprsync
  • 拷贝到可移动存储设备,如 U 盘、移动硬盘等
  • 上传到云存储服务,如 Dropbox、Google Drive 等

FAQ

如何创建加密的 tar 包?

可以使用 gpg 工具对 tar 包进行加密。先创建 tar 包,然后使用 gpg 进行加密:

tar -cf backup.tar file1.txt dir1 gpg -c backup.tar

加密后的文件为 backup.tar.gpg。解密时使用 gpg -d backup.tar.gpg 命令。

如何增量备份?

可以使用 –listed-incremental 选项进行增量备份。它会将上次备份的文件信息保存在一个特殊的 .snar 文件中,下次备份时只会备份自上次备份以来修改的文件。

tar -g backup.snar -caf backup.tar.gz file1.txt dir1

tar -g backup.snar -caf backup.tar.gz file1.txt dir1

tar 包太大怎么办?

如果 tar 包太大,可以考虑以下方法:

  • 使用分卷备份
  • 采用更高压缩比的压缩算法,如 xz
  • 排除不必要的文件或目录
  • 增量备份

tar 包如何传输?

可以使用以下方法传输 tar 包:

  • 通过网络传输,如 scprsync
  • 拷贝到可移动存储设备,如 U 盘、移动硬盘等
  • 上传到云存储服务,如 Dropbox、Google Drive 等
正文完