다음과 같은 결과가 나타나는 이유를 알 수 없습니다.
ls -l
주어진 파일 (HISTORY)의 크기가 "581944"라고 알려줍니다.
$ ls -l HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
ls -s
"572"라고 말합니다.
$ ls -s HISTORY
572 HISTORY
분명히 값이 비슷한 척도를 사용해야합니다. 먼저 --block-size 1
in 을 사용 ls -l
하면 이전과 동일한 결과를 얻을 수 있음을 확인합니다 .
$ ls -l --block-size 1 HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 581944 Feb 22 10:59 HISTORY
그런 다음 ls -s
동일한 스케일로 값을 얻기 위해 동일하게 수행합니다 .
$ ls -s --block-size 1 HISTORY
585728 HISTORY
다른 결과! 581944 ≠ 585728 .
를 사용하여 다른 방법으로 비슷한 값을 생성하려고 시도했지만 다음과 -k
같이 나타납니다.
$ ls -lk HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 569 Feb 22 10:59 HISTORY
$ ls -sk HISTORY
572 HISTORY
다시, 다른 결과, 569 ≠ 572 .
--si를 지정하여 두 옵션이 모두 동일한 스케일을 사용하고 있는지 확인했습니다.
$ ls -lk --si HISTORY
-rw-rw-r-- 1 waldyrious waldyrious 582k Feb 22 10:59 HISTORY
$ ls -sk --si HISTORY
586k HISTORY
... 다시 다른 값 : 582k ≠ 586k .
나는 웹 검색 시도하지만, 관련 같았다 내가 찾을 수있는 유일한 방법이었다 이 :
일부 파일에는 "구멍"이 있으므로
ls -s
(...)로 표시된 사용량이로 표시된 파일 크기보다 작습니다ls -l
. "
(내 결과에서 반대의 경우가 발생 ls -s
합니다 ls -l
.
한편 이 페이지 는
유닉스 파일 구멍을 감지하는 우아한 방법은 없습니다.
이 불일치를 어떻게 처리 할 수 있습니까? 이 값 중 올바른 것으로 간주 될 수있는 것은 무엇입니까? 이것은 아마도 버그 일 수 ls
있습니까?
ls -s
계산 하지 않습니까?