1GB 파일을 생성해도 하드 드라이브의 여유 공간은 변경되지 않습니다.

1GB 파일을 생성해도 하드 드라이브의 여유 공간은 변경되지 않습니다.

남은 하드디스크 공간을 바탕으로 빈 파일을 생성하려고 합니다. 문제는 1GB 크기의 파일을 생성할 때 df 명령을 실행하면 파일이 생성되기 전보다 남은 공간이 12kb만 작아진다는 것입니다.

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031592  29924788  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

someone@here:/tmp/delete# dd if=/dev/zero of=tempFile bs=1000 count=1 seek=1000000
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.000438915 s, 2.3 MB/s

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031604  29924776  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

df 명령이 전체 1GB를 설명하지 못하는 이유를 아는 사람이 있습니까? 감사해요.

답변1

다음을 지원하는 파일 시스템에서 생성했습니다.스파스 파일따라서 출력에서 dd​​알 수 있듯이 실제로는 1000바이트만 차지합니다. 생략 seek하고 적절한 count.

답변2

에서info coreutils du(강조):

'--apparent-size'
디스크 사용량이 아닌 겉보기 크기를 인쇄합니다. 파일의 겉보기 크기는 일반 파일의 'wc -c' 또는 더 일반적으로는 'ls -l --block-size=1' 또는 'stat --format=%s'에 의해 보고된 바이트 수입니다. 예를 들어 줄 바꿈 없이 'zoo'라는 단어가 포함된 파일은 물론 겉보기 크기가 3입니다. 이러한 작은 파일에는 유형과 구성에 따라 0~16KiB 이상의 디스크 공간이 필요할 수 있습니다. 파일이 상주하는 파일 시스템의 정보입니다. 그러나부족한다음으로 생성된 파일 이 명령:

dd bs=1 탐색=2GiB if=/dev/null of=big

가지고있다겉보기 크기 2GiB, 그러나 대부분의 최신 시스템에서는 실제로디스크 공간을 거의 사용하지 않음.

관련 정보