tar 过程中怎么查看 tar的进度
时间: 2023-08-13 14:25:51 浏览: 407
tar 命令本身是没有提供进度条显示的选项的,但可以通过一些技巧来查看 tar 命令的进度。其中一种方法是使用 `pv` 命令,该命令可以显示数据传输的进度条和估计剩余时间等信息。例如,以下命令将压缩 `/path/to/file` 目录,并使用 `pv` 命令显示进度条:
```
tar -czf - /path/to/file | pv | gzip > file.tar.gz
```
另一种方法是通过 `--checkpoint` 参数来指定 tar 命令的检查点,然后使用 `--checkpoint-action` 参数来执行某个命令以显示进度。例如,以下命令将压缩 `/path/to/file` 目录,并在每 1000 个块时输出一条进度消息:
```
tar -czf file.tar.gz --checkpoint=1000 \
--checkpoint-action='echo "Processed %u blocks..."' \
/path/to/file
```
这将在每处理 1000 个块时输出一条消息,例如:
```
Processed 1000 blocks...
Processed 2000 blocks...
Processed 3000 blocks...
```
以上是两种常用的查看 tar 命令进度的方法,你可以根据实际情况选择合适的方法。
相关问题
tar -czvf /var/log/messages 并查看进度
在执行 tar 命令时,由于缺少进度条选项,我们并不能直接查看 tar 的进度。不过,我们可以通过以下方式来查看 tar 命令的进度:
首先,我们可以在执行 tar 命令时使用 `-v` 参数来显示 tar 命令的详细信息。这将让我们看到 tar 命令正在处理哪些文件。
其次,我们可以利用 `watch` 命令来定时执行一个命令,并显示其输出。我们可以将 `watch` 命令与 `ls` 命令结合使用,定时查看目标文件的大小变化,从而了解 tar 命令的进度。
最后,我们可以使用 `pv` 命令来显示 tar 命令的进度,如下所示:
```
tar -czvf - /var/log/messages | pv | gzip > messages.tar.gz
```
在这个命令中,我们使用 `-` 参数来将 tar 命令的输出发送到标准输出,然后使用 `pv` 命令来查看 tar 命令的进度。最后,我们将 tar 命令的输出通过管道传递给 gzip 命令,将其压缩为一个 gzip 文件。
希望这些方法能够帮助你查看 tar 命令的进度。
外部调用tar解压压缩包如何获取解压进度
在外部调用 `tar` 命令解压压缩包时,无法直接获取解压进度。`tar` 命令本身不提供显示解压进度的选项。但是,你可以结合其他命令或脚本来近似地获取解压进度。
一种方法是使用 `pv`(Pipe Viewer)命令,它可以监视数据流的进度。你可以将 `tar` 命令的输出通过管道传递给 `pv` 命令,然后通过 `pv` 命令显示解压进度。例如:
```shell
tar xf file.tar.gz | pv -p -b > /dev/null
```
这将显示 `tar` 解压缩的进度百分比,并将解压缩的数据流重定向到 `/dev/null`。
另一种方法是使用 `progress` 命令,它是一个简单的命令行工具,可以显示命令执行的进度。你可以使用 `progress` 命令来运行 `tar` 命令并显示解压进度。首先,你需要安装 `progress` 命令,然后执行以下命令:
```shell
progress -mp tar xf file.tar.gz
```
这将在解压过程中实时显示进度百分比。
请注意,这些方法只能提供近似的解压进度,并且可能会因为不同的系统或命令版本而有所差异。在某些情况下,解压进度的获取可能并不准确或不可行。