
df 명령(gnu)에서 많은 검색을 수행했지만 1K-blocks
의미를 찾지 못했지만 계산한 결과 1K Byte
? 와 같다고 생각합니다. 공식적인 설명이 있나요?
그렇다면 는 어떻게 계산하나요 Used Percentage
?
예를 들어:
tankywoo@gentoo-jl::~/ » df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 15G 5.9G 8.2G 42% /
tankywoo@gentoo-jl::~/ » df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 15481840 6163320 8532088 42% /
내 로컬 컴퓨터에는 reserved space
.
중고는 6163320이고 Avail은 8532088이므로 다음과 같습니다.
Used%
(15481840-8532088)/15481740 = 42%가 아니라 44.88%가 되어야 한다고 생각합니다 .
그러면 결과를 얻는 방법은 무엇입니까 42%
?
답변1
GNU coreutils df(1)의 1K 블록은 1024바이트를 의미합니다. GNU coreutils 버전 8.13 소스 코드를 간략하게 살펴보면서 확인되었습니다.
964 if (human_output_opts == -1)
965 {
966 if (posix_format)
967 {
968 human_output_opts = 0;
969 output_block_size = (getenv ("POSIXLY_CORRECT") ? 512 : 1024);
970 }
971 else
972 human_options (getenv ("DF_BLOCK_SIZE"),
973 &human_output_opts, &output_block_size);
974 }
보시다시피 환경 변수가 POSIXLY_CORRECT
설정되지 않은 경우 기본 출력 블록 크기는 1024입니다.
사용된 비율을 계산할 때 df(1)는 기본 파일 시스템이 예약된 공간/블록을 지원하는 경우(대부분 지원) 사용 가능한 공간에서 루트 사용자를 위해 예약된 공간/블록을 뺍니다.
529 if (known_value (total) && known_value (available_to_root))
530 {
531 used = total - available_to_root;
532 negate_used = (total < available_to_root);
533 }
요약하자면, 이 모든 경우의 공식적인 권한은 소스 코드입니다.