Disk-Usage
df -h 和 dfc 的區別
dfc
為什麼和之間的使用尺寸有差異df -h
?$ df -h Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/sda7 64G 51G 11G 83% / none 4,0K 0 4,0K 0% /sys/fs/cgroup udev 3,9G 4,0K 3,9G 1% /dev tmpfs 801M 1,5M 799M 1% /run none 5,0M 0 5,0M 0% /run/lock none 4,0G 148K 4,0G 1% /run/shm ... $ dfc FILESYSTEM (=) USED FREE (-) %USED AVAILABLE TOTAL MOUNTED ON /dev/sda7 [=================---] 83% 10.6G 63.9G / none [--------------------] 0% 4.0K 4.0K /sys/fs/cgroup udev [=-------------------] 0% 3.9G 3.9G /dev tmpfs [=-------------------] 0% 798.7M 800.1M /run none [--------------------] 0% 5.0M 5.0M /run/lock none [=-------------------] 0% 3.9G 3.9G /run/shm ...
我不會將 3.9 舍入到 4,然後顯示 4,0,這對我來說毫無意義。
它不僅僅是“四捨五入”。
dfc
(和di
)列印四捨五入到最接近的數字表示的值,同時df
四捨五入**。**該問題未指定 coreutils 的版本;我根據版本 8.13(在 Debian 7 中)回答,儘管我看到與 8.25 相同的結果。
從以下
-h
選項開始df.c
:case 'h': human_output_opts = human_autoscale | human_SI | human_base_1024; output_block_size = 1; break;
gnulib 的“human.c”(humblock)中有後續程式碼,它決定使用哪種類型的捨入。因為未修改人工選項,所以它使用上限而不是下限或四捨五入到最接近的值。這是因為 0 恰好是上限的列舉值:
/* Unless otherwise specified these options may be ORed together. */ /* The following three options are mutually exclusive. */ /* Round to plus infinity (default). */ human_ceiling = 0, /* Round to nearest, ties to even. */ human_round_to_nearest = 1, /* Round to minus infinity. */ human_floor = 2,