Shell dd script - заполняет нули вместо пропуска байтов
Хорошо для тех, кто заинтересован, я наконец нашел ответ: dd seek=$(($offset)) bs=1 count=$c conv=notrunc if=$loc2 of=$loc1
Поэтому я хочу скопировать "текст" из $ loc2 и вставить его в $ loc1 со смещением 0x2 без удаления байтов перед ним. Когда я запускаю эту команду, независимо от того, в какой позиции она не пропускает байты, а вместо этого заменяет каждый байт на 00 00... до тех пор, пока он не достигнет смещения и оттуда он не будет работать нормально. Например:
offset=0x2
loc2 = 6E 6F 70 71
loc1 = 7E 3B 11 FF loc1 should change to this ---> 7E 3B 6E 6F 70 71 but instead changes to: 00 00 6E 6F 70 71
Это мой маленький код
offset=0x2
dd skip=$(($offset)) bs=1 count=5 conv=notrunc < $loc2 > $loc1
1 ответ
Вы используете перенаправление, так что на самом деле происходит то, что $loc1
усекается. Вы можете попробовать указать if=$loc2
а также of=$loc1
за dd
,