目录
什么是 tar?
tar 是 Unix/Linux 系统中常用的归档工具,全称为 Tape ARchive。它可以将多个文件打包成一个文件,以便于存储和传输。tar 本身不具有压缩功能,但可以与其他压缩工具如 gzip、bzip2 等配合使用,实现文件的压缩和解压缩。
基础用法
创建 tar 包
使用 tar
命令可以创建 tar 包。基本语法如下:
tar -cf <tar_file>
…
其中:
-c
: 创建新的 tar 包-f
: 指定输出文件名称<file1>
等: 需要打包的文件或目录
例如,将当前目录下的 file1.txt
、file2.txt
和 dir1
目录打包成 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.txt
和 dir1
目录打包到 backup.tar
,但会排除所有 .log
文件和 dir2
目录。
压缩 tar 包
可以在创建 tar 包时直接对其进行压缩。常用的压缩方式有 gzip、bzip2 和 xz。使用 -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.txt
和 dir1
打包成 backup.tar.aa
、backup.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 包:
- 通过网络传输,如 scp、rsync 等
- 拷贝到可移动存储设备,如 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 包:
- 通过网络传输,如 scp、rsync 等
- 拷贝到可移动存储设备,如 U 盘、移动硬盘等
- 上传到云存储服务,如 Dropbox、Google Drive 等