실제 파일 크기가 더 큰 이유는 무엇입니까? [중복]

실제 파일 크기가 더 큰 이유는 무엇입니까? [중복]

ASCII 텍스트 파일이 있습니다.

file foo
foo: ASCII text

6개의 문자만 포함합니다("F" 뒤에 줄 바꿈이나 공백 없음).

cat foo
ABCDEF

ASCII이므로 파일 크기는 6바이트만 되어야 합니다(ASCII는 문자당 1바이트이므로).

그러나 du습관적으로 이 작업을 수행하면 다음과 같은 혼란스러운 결과가 나타납니다.

du -bsch foo
7   foo
7   total

그리고

du -ksch foo
4.0K    foo
4.0K    total

그래서 예상했던 6b보다 파일 크기가 클 뿐만 아니라, 바이트 단위로 쓸 때와 kb 단위로 쓸 때에도 차이가 납니다.

그래서 내 질문은

  1. 파일 크기가 예상한 6b보다 큰 이유는 무엇입니까? 추가 바이트는 어디로 갔습니까?
  2. du유닛마다 출력이 다른 이유는 무엇입니까?

참고: 이는 Linux 문제가 아닐 수도 있습니다. 나는 Unix 명령을 사용하고 있기 때문에 일부 컴퓨터 과학 포럼이 아닌 여기에 이것을 게시합니다.

고쳐 쓰다부서 규모:

Disk /dev/sda: 476.94 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: SanDisk SD8SN8U5
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D12CA635-6354-48FF-A0D6-0D3CB4BDBE2E

Device         Start        End   Sectors   Size Type
/dev/sda1       2048     534527    532480   260M EFI System
/dev/sda2     534528     567295     32768    16M Microsoft reserved
/dev/sda3     567296  208748856 208181561  99.3G Microsoft basic data
/dev/sda4  208750592  210485247   1734656   847M Windows recovery environment
/dev/sda5  210485248  212582399   2097152     1G Linux filesystem
/dev/sda6  212582400 1000214527 787632128 375.6G Linux filesystem


Disk /dev/zram0: 7.65 GiB, 8210350080 bytes, 2004480 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

고쳐 쓰다 od산출:

od -c foo
0000000   A   B   C   D   E   F  \n
0000007

답변1

Linux의 최신 파일 시스템은 항상 4096바이트의 블록 크기를 갖습니다. stat -f foo이를 확인하는 데 사용할 수 있습니다 .

du -bblock-size=1의 겉보기 크기를 알려줍니다. 따라서 실제 콘텐츠 바이트를 알려줍니다(희소성에 대해서는 알지 못합니다).

du -k실제 디스크 크기를 KiB 단위로 제공합니다. 파일이 4096보다 작으므로 4k를 제공합니다.

예는 다음과 같습니다.

du -b foo.txt 
4       foo.txt
du --block-size=1 foo.txt 
4096    foo.txt
du -b foo-5k.bin
5120    foo-5k.bin
du --block-size=1 foo-5k.bin
8192    foo-5k.bin

실제 디스크 크기는 N*4096임을 알 수 있습니다.

관련 정보