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을 표시하지 않을 것입니다. 그것은 나에게 말이 되지 않습니다.
답변1
단순히 "반올림"하는 것이 아닙니다. 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"에는 후속 코드가 있습니다(혹)에 따라 사용되는 반올림 유형이 결정됩니다. 휴먼 옵션은 수정되지 않기 때문에천장대신에지면또는반올림가장 가까운 값으로. 그 이유는 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,
답변2
나는 이것을 "반올림"이라고 믿습니다.