Linuxの場合:
$ dd if=/dev/null of=mysparse seek=1G count=0
$ du -b mysparse
549755813888 mysparse
$ du -B1 mysparse
0 mysparse
Windowsではfsutilで遊んでいますが、ディスク上のサイズをファイルプロパティのサイズより小さくすることができません。
FSUtil File CreateNew temp 0x100000
FSUtil Sparse SetFlag temp
FSUtil Sparse SetRange temp 0 0x100000
これが役立つかもしれません: "SparseChecker" -Windows NTFSでスパースファイルを管理します "fsutil"のようにファイルの個々のブロックではなく、ファイルを操作できます。
@Mehrdadが言ったことは正しいです。
ただし、ファイルに書き込むもの(ゼロの範囲であっても)はオペレーティングシステムへのデータ(したがってスペースが割り当てられる)と見なされ、FSCTL_SET_ZERO_DATA()のみがスペースを占有しないゼロの書き込みを許可します。
fsutil sparse setflag [file]
ファイルをスパースファイルとして設定できます。