Doc*_*iki 9 linux ubuntu command-line
我已经读过这个问题: 如何在Linux中创建具有给定大小的文件?
但我没有回答我的问题.
我想创建一个372.07 MB的文件,
我在Ubuntu 10.08中尝试了以下命令:
dd if=/dev/zero of=output.dat bs=390143672 count=1
dd: memory exhausted
Run Code Online (Sandbox Code Playgroud)
390143672 = 372.07*1024*1024
还有其他方法吗?
非常感谢!
编辑:如何在Linux命令行上使用十进制查看文件的大小.我的意思是,命令行ls -hl只是说:'373M',但文件实际上是"372.07M".
seh*_*ehe 17
dd of=output.dat bs=1 seek=390143672 count=0
Run Code Online (Sandbox Code Playgroud)
如果底层文件系统支持,则还有创建文件稀疏的额外好处.这意味着,如果某些页面(_blocks)被写入并且文件创建非常快,则不会浪费空间.
编辑,因为人们已经正确地指出,稀疏文件具有在某些情况下可能不利的特性,这是最好的一点:
您可以使用fallocate(在Debian中存在util-linux)而不是:
fallocate -l 390143672 output.dat
Run Code Online (Sandbox Code Playgroud)
这仍然具有不需要实际编写块的好处,因此它几乎与创建稀疏文件一样快,但它并不稀疏.两全其美.
更改您的参数:
dd if=/dev/zero of=output.dat bs=1 count=390143672
Run Code Online (Sandbox Code Playgroud)
否则dd尝试在内存中创建370MB缓冲区.
如果你想更有效地做到这一点,首先用大容量块(比如1M)写入372MB部分,然后使用seek选项首先写入文件末尾,用1字节块写尾部.
例如:
dd if=/dev/zero of=./output.dat bs=1M count=1
dd if=/dev/zero of=./output.dat seek=1M bs=1 count=42
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13768 次 |
| 最近记录: |