A unidade exibida no medidor de taxa de transferência em pv pode ser alterada?

1

Em pv , o medidor de taxa é exibido como

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

em que a unidade usada para as estatísticas de transferência é MiB (1024 bytes). É possível alterar esta unidade para MB (1000 bytes)?

    
por perhapsmaybeharry 23.03.2016 / 03:52

1 resposta

1
O bom do Linux é que você tem acesso às fontes, então é quase sempre possível mudar alguma coisa para fazer o que você gostaria, se você fizer o esforço.

Nesse caso, não é muito difícil fazer o download das fontes e examiná-las para ver se é óbvio o que alterar. Então apenas reconstrua seu próprio binário pv . Se você estiver usando um sistema baseado em rpm , tente o seguinte (como um usuário comum):

$ yumdownloader --source pv

(Isso deve funcionar mesmo se você tiver dnf em vez de yum). Você deve acabar com um arquivo com o sufixo .src.rpm . O resto do nome irá variar dependendo do seu lançamento. Instalar e compilar:

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

Você não precisa ser root para instalar as fontes, pois elas são colocadas em ~/rpmbuild . Você pode, no entanto, precisar instalar o rpmbuild e outros pacotes para fazer a compilação. Você deve obter o binário final final normal em:

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

Entre as fontes, por exemplo MiB, para encontrar uma mudança provável. Eu achei que ~/rpmbuild/BUILD/pv-1.6.0/src/pv/display.c tinha uma rotina pv__si_prefix() que usou um parâmetro is_bytes que determinou se dividir por 1000 ou 1024. Eu simplesmente editei essa rotina para forçá-la a 0 adicionando

is_bytes = 0;

logo após as declarações (antes de if (is_bytes) { ). Então, faça make para obter o binário recompilado da seguinte forma:

$ cd ~/rpmbuild/BUILD/pv-1.6.0/
$ make

O novo arquivo pv deve fazer o que você deseja.

Em um sistema de empacotamento deb , você tem etapas semelhantes para fazer:

$ 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
    
por 23.03.2016 / 14:51

Tags