残りのハード ディスク容量に基づいて空のファイルを作成しようとしています。問題は、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 になります。このような小さなファイルは、ファイルが存在するファイルシステムの種類と構成に応じて、0 から 16 KiB 以上のディスク領域を必要とする場合があります。ただし、まばらな作成されたファイル このコマンド:dd bs=1 シーク=2GiB if=/dev/null of=big
持っています見かけのサイズは2GiBしかし、ほとんどの現代のシステムでは、実際にはディスク容量をほとんど使用しない。