在Linux中:
$ dd if=/dev/null of=mysparse seek=1G count=0
$ du -b mysparse
549755813888 mysparse
$ du -B1 mysparse
0 mysparse
在 Windows 中,我一直在使用 fsutil,但我无法使磁盘上的大小小于文件属性中的大小。
答案1
Type NUL > temp
FSUtil Sparse SetFlag temp
FSUtil Sparse SetRange temp 0 0x40000000
FSUtil File SetEOF temp 0x40000000
它创建一个新文件,然后为其设置稀疏性标志,然后将特定范围设置为稀疏。大小以字节为单位。
您还可以参考文档:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-sparse
答案2
也许这会对你有帮助:“SparseChecker”-管理 Windows NTFS 上的稀疏文件 它允许对文件进行操作,而不是像“fsutil”那样对单个文件块进行操作。
答案3
@Mehrdad 说的是正确的。
但是,无论您写入文件的任何内容(即使是零范围)都将被视为操作系统的数据(因此分配了空间),并且只有 FSCTL_SET_ZERO_DATA() 才允许写入不占用空间的零。
fsutil sparse setflag [file]
允许将文件设置为稀疏文件。