Linux 시스템, 특히 Red Hat Enterprise Linux (RHEL)에서 작업할 때, du 명령어가 디렉터리의 개별 파일 용량 합보다 더 큰 크기를 표시하는 상황을 마주할 수 있습니다. 이 차이는 혼란스러울 수 있지만, 쉽게 설명할 수 있습니다.

du 명령어가 디렉터리 내 파일들의 총합보다 큰 용량을 표시하는 이유 설명

예시:

# du -sh dir1
48M   dir1

# du -sh dir1/*
4.0K  /dir1/file1
4.0K  /dir1/file2
4.0K  /dir1/file3

이 경우, du 명령어가 dir1 디렉터리의 총 용량을 48M로 보고하는 반면, 개별 파일은 12K밖에 차지하지 않습니다. 그럼 이 추가적인 용량은 어디서 오는 걸까요?

원인

이 차이는 du가 디스크 사용량을 계산하는 방식에서 비롯됩니다. du는 파일 자체의 크기뿐만 아니라, 할당된 모든 블록을 계산합니다. Linux에서 디렉터리는 파일 시스템을 관리하는 데 추가적인 공간을 사용하며, 파일 이름과 inode 포인터 같은 정보를 저장합니다. 파일이나 디렉터리가 삭제되었더라도, 일부 블록은 즉시 해제되지 않을 수 있습니다.

디렉터리 블록 크기

이 경우 다음과 같은 상황이 발생합니다:

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
# stat dir1/
  File: `/dir1'
  Size: 262144            Blocks: 97928      IO Block: 4096   directory

디렉터리는 97928 블록을 차지하며, 각 블록은 512 바이트입니다. 이는 총 47.8MB로, 크기 차이를 설명합니다.

결론

디렉터리의 크기가 그 안의 파일 크기와 일치하지 않는 경우가 발생한다면, 디렉터리 자체가 파일 시스템 내에서 공간을 소비하고 있다는 점을 기억해야 합니다. 이는 메타데이터의 축적이나 삭제된 파일들로 인해 공간이 즉시 해제되지 않는 경우 자주 발생합니다.

du가 블록을 어떻게 계산하는지 이해함으로써, Linux 시스템에서 디스크 사용량 문제를 더 효과적으로 해결할 수 있습니다.


이 블로그는 du 명령어가 예상치 못한 크기를 보고하는 일반적인 원인과 그에 대한 해결책을 설명합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

아마존 해외 구매: 서버, 네트워크, 노트북 구매

Amazon Best Sellers Servers

Amazon Best Sellers Networking

Amazon Best Sellers Laptops

위로 스크롤