我知道如何创建一个空文件:
touch /var/tmp/nullbytes
但是如何使用bash在命令行上创建一个仅包含nullbytes的1MB文件?
使用GNU truncate
:
truncate -s 1M nullbytes
(假设nullbytes
事先不存在)将创建一个1兆字节的稀疏文件。这是一个看起来似乎充满零的文件,但它不占用磁盘上的任何空间。
没有truncate
,您可以dd
改用:
dd bs=1048576 seek=1 of=nullbytes count=0
(在某些dd
实现中,您可以将替换为1048576 1M
)
如果希望在Linux和某些文件系统上分配磁盘空间,则可以执行以下操作:
fallocate -l 1M nullbytes
这样就分配了空间,而没有实际将数据写入磁盘(该空间已保留,但标记为未初始化)。
dd < /dev/zero bs=1048576 count=1 > nullbytes
实际上会将零写入磁盘。这是效率最低的,但是如果您需要驱动器在访问该文件时旋转,那么这就是您要使用的驱动器。
或@mikeserv欺骗dd
生成NUL字节的方法:
dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes
使用GNU的一种替代方法,head
它无需指定块大小(1M可以,但是10G则不需要):
head -c 1M < /dev/zero > nullbytes
或获取进度条:
pv -Ss 1M < /dev/zero > nullbytes
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句