如何向文件重复写入指定次数的0xFF字节且不添加换行符
向文件写入指定次数的同一字节(无换行)
你的问题出在yes命令每次输出内容后会自动添加换行符,所以才会混进0x0A。下面是几种直接生成连续0xFF字节的方法:
用printf实现(最简洁)
利用printf的重复输出特性,直接生成10个连续的0xFF:printf '\xff%.0s' {1..10} > SomeFile.bin解释:
\xff是要输出的目标字节,%.0s表示忽略后续的参数(这里{1..10}会展开成1到10的10个参数),所以printf会重复输出10次\xff,全程没有额外换行。用dd+tr组合实现
先通过dd读取指定数量的空字节,再用tr替换成0xFF:dd if=/dev/zero bs=1 count=10 2>/dev/null | tr '\0' '\xff' > SomeFile.bin解释:
bs=1 count=10表示读取10个1字节的块(共10字节),2>/dev/null用来屏蔽dd的进度输出,tr把所有空字节(\0)替换成0xFF。用Perl实现
适合熟悉Perl的场景,语法直观:perl -e 'print "\xff" x 10' > SomeFile.bin解释:
x是Perl的重复运算符,把"\xff"字符串重复10次后输出,没有多余字符。
内容的提问来源于stack exchange,提问作者JCSB
相关产品推荐
相关产品推荐

