Create a test file with lots of zero bytes
With GNU truncate
:
truncate -s 1M nullbytes
(assuming nullbytes
didn't exist beforehand) would create a 1 mebibyte sparse file. That is a file that appears filled with zeros but that doesn't take any space on disk.
Without truncate
, you can use dd
instead:
dd bs=1048576 seek=1 of=nullbytes count=0
(with some dd
implementations, you can replace 1048576 with 1M
)
If you'd rather the disk space be allocated, on Linux and some filesystems, you could do:
fallocate -l 1M nullbytes
That allocates the space without actually writing data to the disk (the space is reserved but marked as uninitialised).
dd < /dev/zero bs=1048576 count=1 > nullbytes
Will actually write the zeros to disk. That is the least efficient, but if you need your drives to spin when accessing that file, that's the one you'll want to go for.
Or @mikeserv's way to trick dd
into generating the NUL bytes:
dd bs=1048576 count=1 conv=sync,noerror 0> /dev/null > nullbytes
An alternative with GNU head
that doesn't involve having to specify a block size (1M is OK, but 10G for instance wouldn't):
head -c 1M < /dev/zero > nullbytes
Or to get a progress bar:
pv -Ss 1M < /dev/zero > nullbytes
dd if=/dev/zero of=/var/tmp/nullbytes count=1 bs=1M