Pv

pv中的傳輸率表中顯示的單位可以更改嗎?

  • March 23, 2016

pv中,速率計顯示為

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

其中用於傳輸統計的單位是MiB(1024 字節)。是否可以將此單位更改為MB(1000 字節)?

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

搜尋來源,比如 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

引用自:https://unix.stackexchange.com/questions/271613