최근에 다음과 같은 문제가 발생했습니다.
find /tmp/tmp33hn25wv -type f -exec stat --format='%s' {} + | awk '{s+=$1} END {print s}'
10420224
du -bs /tmp/tmp33hn25wv
12198004 /tmp/tmp33hn25wv
결과는 지속적으로 다릅니다. 모든 파일은 블록 크기 바이트의 배수로 기록됩니다.
어디에서뒤추가 바이트를 찾으셨나요? 파일 시스템이 파일의 내용을 저장하는 데 어느 정도 공간이 필요할 수 있다는 것을 이해하지만 해당 -b
옵션이 du
파일 시스템에서 사용하는 크기가 아닌 "명백한" 크기를 계산해야 함을 의미하기를 바랐습니다.
답변1
du
디렉토리의 크기를 포함합니다. 기준 -type d
에 추가하면 find
원하는 결과를 얻을 수 있습니다(표준 파일만 포함된 디렉토리 트리에서 수행).
find /tmp/tmp33hn25wv \( -type f -o -type d \) -exec stat --format='%s' {} + |\
awk '{s+=$1} END {print s}'
그러나 공간을 차지하는 다른 파일 형식이 있을 수 있으므로 형식 확인을 완전히 생략해 보세요.
find /tmp/tmp33hn25wv -exec stat --format='%s' {} + | awk '{s+=$1} END {print s}'