df -h와 dfc의 차이점

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을 표시하지 않을 것입니다. 그것은 나에게 말이 되지 않습니다.

답변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

나는 이것을 "반올림"이라고 믿습니다.

관련 정보