解决方法
您可以创建一个稀疏文件,但可能没有您想要的结果,具体取决于您执行此操作的原因:
dd if = / dev / zero of = sparse_file bs = 1 count = 1 seek = 512M
ls -l sparse_file -rw-rw-r-- 1 kbrandt kbrandt 536870913 2010-03-03 08:30 sparse_file
问题是,如果程序不知道如何处理稀疏文件,那么什么时候复制文件,它会用零填充它.例如,请参阅this previous serverfault post.您还可以看到与du的区别:
[kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file 12 sparse_file [kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file --apparent-size 524289 sparse_file [kbrandt@kbrandt-opadmin: /bigfiles] #cat is not sparse aware,watch what happens [kbrandt@kbrandt-opadmin: /bigfiles] cat sparse_file > sparse_file2 [kbrandt@kbrandt-opadmin: /bigfiles] du sparse_file2 524808 sparse_file2
最后,如果你确实想要实际放入零,如果设置更高的bs,它可能会更快一些,如bs = 4096. Here is a link对于实际使用dd块大小进行一些基准测试的人.