Как заполнить файл “FF” с помощью dd?

Как заполнить файл 0xFF использование dd?

Эта команда заполнит выходной файл, обнуляет, пока размер файла не достигает 100 КБ:

dd if=inputFile.bin ibs=1k count=100 of=paddedFile.bin conv=sync

Однако я хочу заполнить файл 0xFFs вместо 0x00s.

20
задан 28.07.2014, 00:38

1 ответ

Насколько я знаю, что нет никакого способа сказать 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

tr используется для замены, обнуляет с 0xFF. tr ожидает аргументы в восьмеричном. 0xFF в восьмеричном \377.

Результат:

$ hexdump -C paddedFile.bin 
00000000  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00019000

Затем вставьте входной файл в начале "заполненного" файла:

$ 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

Отметьте conv=notrunc который говорит dd не усекать выходной файл.

Пример ввел файл:

$ hexdump -C inputFile.bin 
00000000  66 6f 6f 0a 62 61 72 0a                           |foo.bar.|
00000008

Результат:

$ 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
29
ответ дан 07.12.2019, 10:11

Теги

Похожие вопросы