目录
什么是 tar 打包
tar 是 tape archive 的缩写,是 Linux 和 Unix 系统中常用的归档和压缩工具。它可以将多个文件或目录打包成一个文件,并且可以选择是否进行压缩。
使用 tar 命令打包的文件通常以 .tar
或 .tar.gz
为后缀名。其中,.tar
表示未压缩的归档文件,.tar.gz
表示经过 gzip 压缩的归档文件。
tar 命令的基本用法
tar 命令有三种基本操作:创建 tar 包、查看 tar 包内容、解压 tar 包。下面分别介绍这三种操作。
创建 tar 包
使用 tar 命令创建 tar 包的基本语法如下:
tar -cf 打包文件名.tar 文件或目录1 文件或目录2 …
其中:
-c
: 表示创建 tar 包-f
: 指定打包后的文件名
例如,将 /home/user/documents
目录打包成 documents.tar
:
tar -cf documents.tar /home/user/documents
查看 tar 包内容
使用 tar 命令查看 tar 包内容的基本语法如下:
tar -tf 打包文件名.tar
其中:
-t
: 表示查看 tar 包内容
例如,查看 documents.tar
包内的文件:
tar -tf documents.tar
解压 tar 包
使用 tar 命令解压 tar 包的基本语法如下:
tar -xf 打包文件名.tar
其中:
-x
: 表示解压 tar 包
例如,将 documents.tar
包解压到当前目录:
tar -xf documents.tar
tar 命令的常用选项
除了基本的创建、查看和解压操作,tar 命令还有许多常用的选项,可以帮助我们更好地使用 tar 命令。
压缩和解压缩
tar 命令可以在打包时直接进行压缩和解压缩操作,常用的压缩格式有 gzip、bzip2 和 xz。
- 使用 gzip 压缩:
tar -czf 打包文件名.tar.gz 文件或目录1 文件或目录2 …
- 使用 bzip2 压缩:
tar -cjf 打包文件名.tar.bz2 文件或目录1 文件或目录2 …
- 使用 xz 压缩:
tar -cJf 打包文件名.tar.xz 文件或目录1 文件或目录2 …
解压缩时,只需要将 c
改为 x
即可:
tar -xzf 打包文件名.tar.gz tar -xjf 打包文件名.tar.bz2 tar -xJf 打包文件名.tar.xz
排除文件
有时我们可能不想把某些文件或目录包含在 tar 包中,可以使用 --exclude
选项来排除它们:
tar -cf 打包文件名.tar –exclude=排除文件或目录1 –exclude=排除文件或目录2 … 文件或目录
保留文件属性
在创建 tar 包时,我们可以使用 -p
或 --preserve-permissions
选项来保留文件的属性信息,包括文件权限、所有者、组等:
tar -cpf 打包文件名.tar 文件或目录
tar 打包实战
下面我们来看看 tar 命令在实际应用中的一些使用场景。
备份系统
可以使用 tar 命令备份整个系统,包括系统配置文件、应用程序等:
tar -czpf system_backup.tar.gz /
这将创建一个名为 system_backup.tar.gz
的压缩备份文件,包含整个根目录 /
的内容。
备份数据库
可以使用 tar 命令备份数据库文件:
tar -czpf database_backup.tar.gz /var/lib/mysql
这将创建一个名为 database_backup.tar.gz
的压缩备份文件,包含 MySQL 数据库文件。
备份网站文件
可以使用 tar 命令备份网站文件:
tar -czpf website_backup.tar.gz /var/www/html
这将创建一个名为 website_backup.tar.gz
的压缩备份文件,包含网站的所有文件和目录。
tar 打包常见问题解答
1. 如何查看 tar 包中的文件列表?
可以使用 tar -tf 打包文件名.tar
命令查看 tar 包中的文件列表。
2. 如何解压 tar 包到指定目录?
可以使用 tar -xf 打包文件名.tar -C 目标目录
命令将 tar 包解压到指定目录。
3. 如何排除某些文件或目录不打包?
可以使用 --exclude=排除文件或目录
选项排除指定的文件或目录不打包。
4. 如何保留 tar 包中文件的权限和属性?
可以使用 -p
或 --preserve-permissions
选项来保留文件的权限和属性信息。
5. 如何查看 tar 包的压缩格式?
可以使用 file 打包文件名.tar.gz
命令查看 tar 包的压缩格式。