小编Caf*_*ion的帖子

光伏如何运作?

以下命令如何工作?

pv file.tar.gz | tar -xz
Run Code Online (Sandbox Code Playgroud)

根据我的理解,管道运算符|创建 apipestdoutofpv映射到O_WRONLY管道的末尾,tar'sstdin映射到O_RDONLYwith bothO_WRONLYO_RDONLYexisting inpipefs

这一切都很好,但以下内容正在打印到我的屏幕上:

31.1MiB 0:00:05 [6.17MiB/s] [===================================>] 100%
Run Code Online (Sandbox Code Playgroud)

据我所知,这个进度条不是由生成的,tar因为如果它是并且我不需要它,它可以通过一个选项获得pv,因此pv必须生成它。但是如何? pvstdout映射到O_WRONLY.

我还读到一些 shell 使用套接字对代替管道,pipefs并且套接字对是双向的。但这似乎会占用stdinstdout两个命令,直到一个或两个命令完成。在上面的例子中不是这种情况,因为进度条是实时更新的。

tar pipe pv

1
推荐指数
1
解决办法
1499
查看次数

标签 统计

pipe ×1

pv ×1

tar ×1