web-dev-qa-db-ja.com

pvの転送速度計に表示される単位を変更できますか?

pvでは、レートメーターは次のように表示されます。

47.5MiB 0:00:00 [ 165MiB/s] [================================>] 100%

ここで、転送統計に使用される単位はMiB(1024バイト)です。この単位をMB(1000バイト)に変更することはできますか?

1

Linuxの良いところは、ソースにアクセスできることです。そのため、努力すれば、ほとんどの場合、やりたいことを実行するために何かを変更することができます。

この場合、ソースをダウンロードし、それらを調べて、何を変更するかが明らかかどうかを確認することはそれほど難しくありません。次に、独自のpvバイナリを再構築します。 rpmベースのシステムを使用している場合は、(通常のユーザーとして)次のことを試してください。

_$ yumdownloader --source pv
_

(これは、yumの代わりにdnfを使用している場合でも機能するはずです)。接尾辞_.src.rpm_が付いたファイルになってしまうはずです。名前の残りの部分は、リリースによって異なります。インストールしてコンパイルします。

_$ rpm -i pv-1.6.0-1.fc22.src.rpm
$ rpmbuild -bc ~/rpmbuild/SPECS/pv.spec
_

ソースは_~/rpmbuild_に配置されるため、ソースをインストールするためにrootである必要はありません。ただし、コンパイルを行うには、rpmbuildおよびその他のパッケージをインストールする必要がある場合があります。次の場所で通常の最終バイナリpvを取得する必要があります。

_$ file ~/rpmbuild/BUILD/pv-1.6.0/pv
_

ソース(MiBなど)をgrepして、変更の可能性を見つけます。 _~/rpmbuild/BUILD/pv-1.6.0/src/pv/display.c_には、1000または1024で除算するかどうかを決定するパラメーター_is_bytes_をとるルーチンpv__si_prefix()があることがわかりました。このルーチンを編集して、追加して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
_
1
meuh