Tar 命令教程的10 个实际示例
在 Unix 平台上,tar 命令是主要的归档实用程序。了解各种 tar 命令选项将帮助您掌握归档文件操作。
在本文中,让我们了解各种tar 示例,包括如何创建 tar 存档(使用 gzip 和 bzip 压缩)、提取单个文件或目录、查看 tar 存档内容、验证 tar 存档的完整性、找出 tar 存档之间的区别和文件系统,在创建之前估计 tar 档案的大小等,
1. 使用 tar 命令创建存档
使用选项 cvf 创建未压缩的 tar 存档
这是创建 tar 存档的基本命令。
$ tar cvf archive_name.tar dirname/
在上面的命令中:
- c – 创建一个新档案
- v – 详细列出已处理的文件。
- f – 以下是存档文件名
使用选项 cvzf 创建 tar gzipped 存档
上面的 tar cvf 选项,不提供任何压缩。要对 tar 存档使用 gzip 压缩,请使用 z 选项,如下所示。
$ tar cvzf archive_name.tar.gz dirname/
- z – 通过 gzip 过滤存档
注意: .tgz 与 .tar.gz 相同
注意:我喜欢在所有存档创建(或查看或提取)时保持“cvf”(或 tvf 或 xvf)选项不变,并在最后添加其他选项,这样更容易记住。ie cvf 用于创建压缩包,cvfz 用于压缩gzip 压缩包创建,cvfj 用于压缩bzip2 压缩包创建等,要使此方法正常工作,请不要在选项前面给出-。
使用选项 cvjf 创建 bzipped tar 存档
创建一个 bzip2 tar 存档,如下所示:
$ tar cvfj archive_name.tar.bz2 dirname/
- j – 通过 bzip2 过滤存档
gzip vs bzip2:bzip2 比 gzip 需要更多的时间来压缩和解压。bzip2 存档大小小于 gzip。
注意: .tbz 和 .tb2 与 .tar.bz2 相同
2. 使用 tar 命令提取(解压缩)存档
使用选项 xvf 提取 *.tar 文件
使用选项 x 提取 tar 文件,如下所示:
$ tar xvf archive_name.tar
- x - 从存档中提取文件
使用选项 xvzf 提取 gzipped tar 存档 ( *.tar.gz )
使用选项 z 解压缩 gzip tar 存档。
$ tar xvfz archive_name.tar.gz
使用选项 xvjf 提取 bzipped tar 存档 ( *.tar.bz2 )
使用选项 j 解压缩 bzip2 tar 存档。
$ tar xvfj archive_name.tar.bz2
注意:在上述所有命令中,v 是可选的,它列出了正在处理的文件。
3. 使用 tar 命令列出档案
使用选项 tvf 无需解压即可查看 tar 存档文件内容
您可以在解压前查看 *.tar 文件内容,如下所示。
$ tar tvf archive_name.tar
查看 *.tar.gz 文件内容而不使用选项 tvzf 提取
您可以在解压前查看 *.tar.gz 文件内容,如下所示。
$ tar tvfz archive_name.tar.gz
查看 *.tar.bz2 文件内容而不使用选项 tvjf 提取
您可以在解压前查看 *.tar.bz2 文件内容,如下所示。
$ tar tvfj archive_name.tar.bz2
4.用less命令列出tar文件内容
当档案中的文件数量更多时,您可以将 tar 的输出通过管道传输到更少。但是,您也可以直接使用 less 命令来查看 tar 归档输出。
5.从tar、tar.gz、tar.bz2文件中提取单个文件
要从 tar 存档中提取特定文件,请在 tar xvf 命令末尾指定文件名,如下所示。以下命令仅从大型 tar 文件中提取特定文件。
$ tar xvf archive_file.tar /path/to/file
根据压缩方式gzip或bzip2分别使用相关选项z或j如下图。
$ tar xvfz archive_file.tar.gz /path/to/file
$ tar xvfj archive_file.tar.bz2 /path/to/file
6.从tar、tar.gz、tar.bz2文件中提取单个目录
要从 tar 存档中提取单个目录(及其子目录和文件),请在 tar xvf 命令末尾指定目录名称,如下所示。以下内容仅从大型 tar 文件中提取特定目录。
$ tar xvf archive_file.tar /path/to/dir/
要从 tar 存档中提取多个目录,请在 tar xvf 命令的末尾指定这些单独的目录名称,如下所示。
$ tar xvf archive_file.tar /path/to/dir1/ /path/to/dir2/
根据压缩方式gzip或bzip2分别使用相关选项z或j如下图。
$ tar xvfz archive_file.tar.gz /path/to/dir/
$ tar xvfj archive_file.tar.bz2 /path/to/dir/
7. 使用正则表达式从 tar、tar.gz、tar.bz2 档案中提取文件组
您可以指定一个正则表达式,以提取与指定模式匹配的文件。例如,以下 tar 命令提取所有扩展名为 pl 的文件。
$ tar xvf archive_file.tar --wildcards '*.pl'
选项说明:
- –wildcards *.pl – 带有 pl 扩展名的文件
8. 使用选项 -r 将文件或目录添加到现有存档
您可以将其他文件添加到现有的 tar 存档,如下所示。例如,要将文件附加到 *.tar 文件,请执行以下操作:
$ tar rvf archive_name.tar newfile
这个新文件将被添加到现有的archive_name.tar。在tar中添加目录也是类似的,
$ tar rvf archive_name.tar newdir/
注意:您不能将文件或目录添加到压缩存档中。如果您尝试这样做,您将收到“tar:无法更新压缩档案”错误,如下所示。
$ tar rvfz archive_name.tgz newfile
tar: Cannot update compressed archives
Try `tar --help' or `tar --usage' for more information.
9. 使用选项 -W 验证 tar 中可用的文件
作为创建 tar 文件的一部分,您可以验证使用选项 W 创建的存档文件,如下所示。
$ tar cvfW file_name.tar dir/
如果您计划从存档文件或文件系统中删除目录/文件,您可能需要在执行此操作之前验证存档文件,如下所示。
$ tar tvfW file_name.tar
Verify 1/file1
1/file1: Mod time differs
1/file1: Size differs
Verify 1/file2
Verify 1/file3
如果输出行以验证开头,并且没有不同的行,则文件/目录正常。如果没有,您应该调查该问题。
注意:对于压缩存档文件 ( *.tar.gz, *.tar.bz2 ),您无法进行验证。
即使是压缩存档,也可以找到存档和文件系统之间的差异。它还显示与上面相同的输出,但不包括带有验证的行。
查找 gzip 归档文件和文件系统之间的区别
$ tar dfz file_name.tgz
查找 bzip2 归档文件和文件系统之间的区别
$ tar dfj file_name.tar.bz2
10. 估计 tar 存档大小
以下命令在您创建 tar 文件之前估计 tar 文件大小(以 KB 为单位)。
$ tar -cf - /directory/to/archive/ | wc -c
20480
以下命令会在您创建 tar.gz、tar.bz2 文件之前估计压缩的 tar 文件大小(以 KB 为单位)。
$ tar -czf - /directory/to/archive/ | wc -c
508
$ tar -cjf - /directory/to/archive/ | wc -c
428
- 点赞
- 收藏
- 关注作者
评论(0)