来自微软文档
createnew
创建一个具有指定名称和大小的文件,其内容由零组成。
从这里,您可以说文件必须全为零([...] 内容由零组成)
但是,如果这是真的
[...]the file is nearly created immediately[...]
我认为您是对的:fsutil可能会在执行时创建带有标记为空闲字节的文件,但不会写入这些字节
当你像这样使用dd
dd if=/dev/zero of=testFile bs=1024M count=1024
您实际上是在“逐字节”写入新文件的每个字节中的零
你可以这样做:
fsutil file createnew testFile_fsutil <1Tb> #(on Windows)
dd if=/dev/zero of=testFile_dd bs=1024M count=1024 #(on Linux)
然后,您可以在任何 hexeditor 上查看 testFile_fsutil的内容,并查找非零字节,或者更准确地说,您可以从 Linux 中查找( 1099511627776 字节 = 1 Tebibyte ):
cmp --bytes=1099511627776 testFile_fsutil testFile_dd
或者
cmp --bytes=1099511627776 testFile_fsutil /dev/zero
甚至使用哈希:
dd if=/dev/zero bs=1024M count=1024 | sha1sum
返回
fea475204f4ad1348f21fad930a7c721a2858971
所以,
dd if=testFile_fsutil bs=1024M count=1024 | sha1sum
必须返回相同的。
注意:为了更快地证明您的观点,您可以使用更小的文件进行测试。