在 中pv
,速率计显示为
47.5MiB 0:00:00 [ 165MiB/s] [================================>] 100%
其中用于传输统计信息的单位是MiB
(1024 字节)。这个单位可以改成MB
(1000字节)吗?
答案1
Linux 的好处在于您可以访问源代码,因此,如果您付出努力,几乎总是可以更改某些内容来执行您希望它执行的操作。
在这种情况下,下载源代码并浏览它们以查看是否有明显的更改内容并不困难。然后重建你自己的pv
二进制文件。如果您使用的是rpm
基于系统的系统,请尝试以下操作(作为普通用户):
$ yumdownloader --source pv
(即使你有 dnf 而不是 yum,这也应该有效)。您最终应该得到一个后缀为 的文件.src.rpm
。名称的其余部分将根据您的版本而有所不同。安装并编译它:
$ rpm -i pv-1.6.0-1.fc22.src.rpm
$ rpmbuild -bc ~/rpmbuild/SPECS/pv.spec
您无需成为 root 即可安装源代码,因为它们已放入~/rpmbuild
.但是,您可能需要安装rpmbuild
和其他软件包才能进行编译。您应该在以下位置获得正常的最终二进制 pv:
$ file ~/rpmbuild/BUILD/pv-1.6.0/pv
Grep 通过源(例如 MiB)来查找可能的更改。我发现~/rpmbuild/BUILD/pv-1.6.0/src/pv/display.c
有一个例程,它pv__si_prefix()
采用一个参数is_bytes
来确定是除以 1000 还是 1024。我只是编辑了这个例程,通过添加来强制它为 0
is_bytes = 0;
就在声明之后(之前if (is_bytes) {
)。然后make
按如下方式重新编译二进制文件:
$ cd ~/rpmbuild/BUILD/pv-1.6.0/
$ make
新pv
文件应该执行您想要的操作。
在deb
包装系统上,您需要执行类似的步骤:
$ sudo apt-get install dpkg-dev debhelper
$ apt-get source pv
$ cd pv-1.6.0/
$ dpkg-buildpackage -b -nc
... edit src/pv/display.c
$ make