如何使用dd用“FF”填充文件?

XP1*_*XP1 24 linux dd hexadecimal

如何0xFF使用 using填充文件dd

此命令将用零填充输出文件,直到文件大小达到 100 KB:

dd if=inputFile.bin ibs=1k count=100 of=paddedFile.bin conv=sync
Run Code Online (Sandbox Code Playgroud)

但是,我想用0xFFs 而不是0x00s填充文件。

les*_*ana 34

据我所知,没有办法告诉dd使用0xFF. 但是有一个解决方法。

首先创建一个具有所需长度的文件0xFF

$ dd if=/dev/zero ibs=1k count=100 | tr "\000" "\377" >paddedFile.bin
100+0 records in
200+0 records out
102400 bytes (102 kB) copied, 0,0114595 s, 8,9 MB/s
Run Code Online (Sandbox Code Playgroud)

tr用于用 替换零0xFFtr期望八进制参数。0xFF八进制是\377.

结果:

$ hexdump -C paddedFile.bin 
00000000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00019000
Run Code Online (Sandbox Code Playgroud)

然后在“填充”文件的开头插入输入文件:

$ dd if=inputFile.bin of=paddedFile.bin conv=notrunc
0+1 records in
0+1 records out
8 bytes (8 B) copied, 7,4311e-05 s, 108 kB/s
Run Code Online (Sandbox Code Playgroud)

请注意conv=notruncwhich 告诉dd不要截断输出文件。

示例输入文件:

$ hexdump -C inputFile.bin 
00000000  66 6f 6f 0a 62 61 72 0a                           |foo.bar.|
00000008
Run Code Online (Sandbox Code Playgroud)

结果:

$ hexdump -C paddedFile.bin 
00000000  66 6f 6f 0a 62 61 72 0a  ff ff ff ff ff ff ff ff  |foo.bar.........|
00000010  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00019000
Run Code Online (Sandbox Code Playgroud)

  • 第 1 步适用于 Linux,但在 osx 中,文件 `paddFile.bin` 填充了 `c3 bf`。我想知道为什么?编辑:https://superuser.com/questions/1349494/filling-file-with-0xff-gives-c3bf-in-osx (2认同)