建立 1GB 檔案不會改變硬碟上的可用空間

建立 1GB 檔案不會改變硬碟上的可用空間

我正在嘗試根據剩餘硬碟空間建立一個空檔。問題是,當我建立一個 1 GB 大的檔案時,df 指令顯示剩餘空間只比建立檔案之前小 12 kb。

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

您在支援的檔案系統上建立了它稀疏文件所以它實際上只佔用 1000 個位元組,正如輸出所示dd。省略seek並使用正確的count.

答案2

info coreutils du(強調我的):

'--apparent-size'
列印表觀大小,而不是磁碟使用情況。文件的表觀大小是“wc -c”在常規文件上報告的位元組數,或更一般地說,“ls -l --block-size=1”或“stat --format=%s”。例如,包含單字「zoo」且沒有換行符的檔案的表觀大小當然為 3。名稱。然而,一個使用已建立的文件 這個命令:

dd bs=1 尋求=2GiB if=/dev/null of=big

有一個表觀大小為 2 GiB,但在大多數現代系統上,它實際上幾乎不使用磁碟空間

相關內容