NFS 마운트의 stat, du 및 ls -l 출력 이해

NFS 마운트의 stat, du 및 ls -l 출력 이해
ls -l f.txt
-rwxrwxr-x 1 abc abc 1161 Sep  1 02:02 f.txt

stat f.txt
  File: `f.txt'
  Size: 1161        Blocks: 34         IO Block: 524288 regular file
Device: 38h/56d Inode: 6448956669  Links: 1
Access: (0775/-rwxrwxr-x)  Uid: ( 1024/   carle)   Gid: (  100/   users)
Access: 2017-09-09 02:02:36.000000000 -0700
Modify: 2017-09-09 02:02:36.000000000 -0700
Change: 2017-09-11 20:42:00.709807459 -0700

du -h f.txt
17K wiki.txt
  1. f.txt가 디스크에서 17K(17408바이트)를 차지하는 이유는 무엇입니까?
  2. IO 블록 크기란 무엇입니까? 길이가 524288바이트이고 파일 시스템 블록 크기와 같지 않은 이유는 무엇입니까(파일 시스템 블록 크기가 17K라고 가정)?

여기서 무슨 일이 일어나고 있는 걸까요?

답변1

둘 다 아닙니다. 파일 시스템에 비해 혼란스러울 뿐입니다 file size.size on disk파일 시스템 여기서 각 상자/블록의 크기는 17k파일 시스템에 있습니다. 노란색 부분이 파일 데이터(f.txt)라는 점을 고려하면 크기는 약 1161이지만 디스크는 17k 크기를 차지합니다. du이 명령은 디스크의 실제 크기를 제공합니다.

파일 크기가 18000 bytes34k라고 가정하면 du 명령이 출력됩니다!

  1. 크기는 파일의 실제 바이트 수이고, 디스크 상의 크기는 파일이 디스크에서 차지하는 실제 바이트 수입니다.

  2. 디스크의 크기는 일반적으로 파일의 실제 크기보다 큽니다.

  3. 스파스("누출")로 표시되거나 파일 시스템에 의해 자동으로 압축된 파일의 경우 디스크의 크기가 실제 크기보다 작을 수 있습니다.

관련 정보