리눅스

du와 ls의 차이

개발하는지호 2024. 11. 18. 12:16

ls 명령어

  • 논리적 크기: 파일의 크기를 논리적으로 표시합니다. 즉, 파일이 실제로 가지고 있는 데이터의 크기를 나타냅니다.
  • 최대 사용할 수 있는 용량: 파일의 크기가 데이터의 양을 기반으로 표시되므로, 파일이 최대 사용할 수 있는 용량을 나타냅니다.

du 명령어

  • 실제 디스크 사용량: 파일이 디스크에서 실제로 차지하는 공간을 표시합니다. 파일 시스템의 블록 크기와 내부 단편화 등을 고려한 결과를 보여줍니다.
  • 최소 블록 단위: 파일 크기가 작더라도 최소 블록 단위(예: 4KB)만큼 디스크 공간을 사용합니다. 이는 파일 시스템에서 데이터를 저장하는 최소 단위이기 때문입니다.

예시로 요약

예시 1: 작은 파일

  • 파일 크기: 1바이트
  • 블록 크기: 4KB
sh
코드 복사
# 작은 파일 생성 echo -n "a" > tiny_file.txt # ls 명령어 ls -alh tiny_file.txt
plaintext
코드 복사
-rw-r--r-- 1 user user 1 Jul 24 12:20 tiny_file.txt
sh
코드 복사
# du 명령어 du -sh tiny_file.txt
plaintext
코드 복사
4.0K tiny_file.txt
  • ls -alh: 파일의 논리적 크기인 1바이트를 표시합니다.
  • du -sh: 파일이 실제로 디스크에서 차지하는 최소 블록 단위인 4KB를 표시합니다.

결론

  • ls 명령어는 파일의 논리적 크기를 보여줍니다. 이는 파일이 가지고 있는 데이터의 양을 나타냅니다.
  • du 명령어는 파일이 실제로 디스크에서 차지하는 공간을 보여줍니다. 이는 파일 시스템의 블록 크기를 고려한 실제 디스크 사용량을 나타냅니다.
  • 최소 블록 단위: 파일 크기가 작더라도 최소 블록 단위(예: 4KB)만큼 디스크 공간을 차지합니다.

이러한 차이를 이해하면, 파일 시스템의 디스크 사용량을 보다 정확하게 평가하고 관리할 수 있습니다.