gpt4 book ai didi

linux - 使用 PV 计算行数并显示总行数而不是管道中的总字节数

转载 作者:可可西里 更新时间:2023-11-01 11:46:25 27 4
gpt4 key购买 nike

我正在尝试制作一个小脚本来显示目录在磁盘上使用的总存储空间。为了弄清楚我正在使用 du 命令。但是,为了在 DU 处理一个非常大的目录时向用户提供一些反馈,我想通过管道运行输出并显示行数,这样用户也可以了解有多少文件夹和目录中有文件。这是我的代码:

du -ah | pv -l | tail -n 1 | sed 's/\.$//'

然而,尽管 pv 命令使用行,它仍然以千字节而不是行显示通过管道的总数据。有没有办法显示通过管道传输的总行数,而不是字节数。也许是不同的命令?

谢谢!

最佳答案

du 带有 -s 标志以仅显示总数,所以只需执行例如这代替:

$ du -sh /tmp | cut -f1
4.9M

关于pv:

However, though the pv commands uses lines, it still shows total data through the pipe in Kilobytes rather then lines.

你确定吗?

$ find /tmp/ | pv >/dev/null
44.6kiB 0:00:00 [3.19MiB/s] [ <=>
^^^^^^^

$ find /tmp/ | pv -l >/dev/null
1.24k 0:00:00 [86.5k/s] [ <=>
^^^^^

$ find /tmp/ | wc -l
1237
^^^^

对我来说看起来像线条(就像它按预期工作一样)?

关于linux - 使用 PV 计算行数并显示总行数而不是管道中的总字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18734647/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com