附加 0 以使用 dd 生成 1MB 文件
Appending 0's to make 1MB file with dd
我有一个 512 字节长的二进制文件 abc.bin
,我需要通过将 0 (0x00) 附加到 abc.bin
来生成 1M (1024 x 1024 = 1048576) 字节的文件。我如何使用 dd
实用程序做到这一点?
例如,abc.bin
有 512 个字节的 0x01(“11 ... 11”),我需要有一个 helloos.bin,即 1048576 个字节(“11 ... 11000 ... 000"); 0不是'0',而是0x00,0x00的个数是1048576 - 512。
我假设您实际上是想在磁盘上分配 1M 的零,而不仅仅是一个报告长度为 1MiB 并读取为零的文件。
dd if=/dev/zero count=2047 bs=512 >> abc.bin
你可以告诉dd
查找到文件中1M的位置,这样的效果是使其大小至少为1M:
dd if=/dev/null of=abc.bin obs=1M seek=1
如果要确保 dd
只扩展,从不截断文件,请添加 conv=notrunc
:
dd if=/dev/null of=abc.bin obs=1M seek=1 conv=notrunc
如果您使用的是带有 GNU coreutils 的系统(就像任何 Linux 系统一样),您可以使用 truncate
命令而不是 dd
:
truncate --size=1M abc.bin
如果您想确保文件只被扩展,绝不会被截断:
truncate --size=\>1M abc.bin
这个方法也有效:
- 用 0(0x00)s 创建一个 1M 的文件 -
dd if=/dev/zero of=helloos.bin bs=512 count=2048
- 在创建的文件上写入
abc
- dd of=helloos.bin conv=notrunc if=abc.bin
没有conv=notrunc
选项,我只有512字节的文件。我还可以使用 seek=N
通过跳过 N
块来控制起始位置。
我有一个 512 字节长的二进制文件 abc.bin
,我需要通过将 0 (0x00) 附加到 abc.bin
来生成 1M (1024 x 1024 = 1048576) 字节的文件。我如何使用 dd
实用程序做到这一点?
例如,abc.bin
有 512 个字节的 0x01(“11 ... 11”),我需要有一个 helloos.bin,即 1048576 个字节(“11 ... 11000 ... 000"); 0不是'0',而是0x00,0x00的个数是1048576 - 512。
我假设您实际上是想在磁盘上分配 1M 的零,而不仅仅是一个报告长度为 1MiB 并读取为零的文件。
dd if=/dev/zero count=2047 bs=512 >> abc.bin
你可以告诉dd
查找到文件中1M的位置,这样的效果是使其大小至少为1M:
dd if=/dev/null of=abc.bin obs=1M seek=1
如果要确保 dd
只扩展,从不截断文件,请添加 conv=notrunc
:
dd if=/dev/null of=abc.bin obs=1M seek=1 conv=notrunc
如果您使用的是带有 GNU coreutils 的系统(就像任何 Linux 系统一样),您可以使用 truncate
命令而不是 dd
:
truncate --size=1M abc.bin
如果您想确保文件只被扩展,绝不会被截断:
truncate --size=\>1M abc.bin
这个方法也有效:
- 用 0(0x00)s 创建一个 1M 的文件 -
dd if=/dev/zero of=helloos.bin bs=512 count=2048
- 在创建的文件上写入
abc
-dd of=helloos.bin conv=notrunc if=abc.bin
没有conv=notrunc
选项,我只有512字节的文件。我还可以使用 seek=N
通过跳过 N
块来控制起始位置。