我正在嘗試根據剩餘硬碟空間建立一個空檔。問題是,當我建立一個 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,但在大多數現代系統上,它實際上幾乎不使用磁碟空間。