답변:
일반적으로 디스크 사용 (이름이 나오는 곳) du
에 대한 정보를 표시합니다 . 명심하십시오
disk usage != sum of file sizes
각 파일은 파일 시스템에서 여러 블록 을 차지하기 때문에 ( man mkfs.ext2
예를 들어). 이는 매우 드문 상황에서만 파일의 디스크 사용량이 실제 크기와 동일하다는 것을 의미합니다. 즉, 크기는 블록 크기의 배수 여야합니다.
파일 시스템 블록은 파일의 일부를 포함하는 상자로 생각하십시오. 각각의 파일은 하나의 파일의 일부만 포함 할 수 있습니다.
의 GNU 버전의 du
경우 --apparent-size
옵션을 확인하십시오 .
파일 시스템에 희소 파일 이있을 때 더욱 흥미로운 상황이 발생할 수 있습니다 !
actual
or에 대한 참조를 찾아보십시오 apparent
. (또한 업데이트 된 설명을 참조하십시오).
Mac OS X 및 Finder (Snow Leopard, 버전 10.6.8)에 대해 다음 사항을 확인했습니다.
bash
아래 코드 (1)에 경로 (파일 또는 폴더)의 Finder의 '계량화 된'수치에 대한 바이트 수를 얻습니다 .
BLOCKSIZE
쉘에 환경 변수가 설정되어 있지 않으며 결코 가지고 있지 않다고 말하고 싶지만 버전과 기본값을 모두 테스트 (현재 약간) $BLOCKSIZE
하고 동일한 값 을 제공합니다.
#!/usr/bin/env bash
#tab-width:4
du -s "${@:-.}" |awk '{u+=$1}END{ print u*'${BLOCKSIZE:-0512}' }'||exit $? #macosx (xnu)
# gdu -sB${BLOCKSIZE:-4096} "${@:-.}" |awk '{u+=$1}END{ print u*'${BLOCKSIZE:-4096}' }'||exit $? #macports gnu
#!/usr/bin/env bash
#tab-width:4
for a;do find "$a" -type f -print0|xargs -0 stat -f %z |awk '{u+=$1}END{ print u }'||exit $?;done #macosx (xnu)
# for a;do find "$a" -type f -print0|xargs -0 gstat -c %s |awk '{u+=$1}END{ print u }'||exit $?;done #macports gnu
du
(1) 또는 (gnu) gdu
(1) 모두 확장 속성을 계산하지 않는 것 같습니다 ( xattr
)그리고 난 그냥 있어야 말장난 '실행 경로 및 수학 할'
밖으로 평화를이 시간을 fo'real 굿나잇.
내 우분투 시스템에서 ext4를 사용하여 du -b file
실제 파일의 du -b dir
바이트 크기를 제공하고 파일 + 디렉토리 오버 헤드의 바이트 크기를 제공합니다. 제 경우에는 오버 헤드는 4096 바이트의 배수입니다.
이 오버 헤드는 파일 수가 증가함에 따라 증가합니다.
참고 : 파일이 삭제 되더라도 디렉토리 오버 헤드는 파일을 삭제하기 전의 상위 레벨로 유지됩니다.
재부팅 여부를 확인하기 위해 재부팅을 시도하지는 않았지만 어느 경우이든 이는 역사적인 상황에 따라 디렉토리 크기가 달라짐을 의미합니다.
전체 파일 크기 의 정확한 값을 얻으려면 각 파일 크기를 계산하는 것이 가장 좋습니다 .
다음 스크립트는 모든 파일 크기 (바이트)를 합산합니다.
당신이하지 않은 경우 OS X를 들어, -b
'뒤'에 대한 opton을, 당신이 사용할 수있는 stat
대신에 (해당되는 경우 :) ... 주석으로 라인 쇼 우분투. stat
대안을 du -b
;
unset total
while IFS= read -r -d $'\0' rf; do
# (( total += $(stat "$rf" | sed -nre 's/^ Size: ([0-9]+).*/\1/p') ))
(( total += $(du -b "$rf" | cut -f 1) ))
done < <(find . -type f -name '*' -print0)
echo $total
coreutils
의 GNU 버전을 설치 하도록 설치할 수 있습니다 . 그 그리 정확히 휴대용,하지만 몇 가지 핵심 유틸의 GNU 버전을 얻을 OS X에있는 사람들에게 유용 할 수 있습니다. du
gdu