Я читал эту цитату (ниже) несколько раз, совсем недавно здесь , и постоянно удивляюсь, как ddможно использовать для исправления чего-либо, не говоря уже о компиляторе:
Система Unix, которую я использовал в школе 30 лет назад, была очень ограничена в оперативной памяти и дисковом пространстве. Особенно
/usr/tmpфайловая система была очень маленькой, что приводило к проблемам, когда кто-то пытался скомпилировать большую программу. Конечно, студенты не должны были писать «большие программы» в любом случае; большие программы обычно были исходными кодами, скопированными откуда-то. Многие из нас скопировали/usr/bin/ccв/home/<myname>/cc, и используютсяddдля исправления двоичного файла использовать/tmpвместо/usr/tmp, который был больше. Конечно, это только усугубило проблему - дисковое пространство, занимаемое этими копиями, имело значение в те дни и теперь/tmpрегулярно заполнялось, не позволяя другим пользователям даже редактировать свои файлы. После того, как они узнали, что случилось, сисадмины сделалиchmod go-r /bin/* /usr/bin/*которая "исправила" проблему, и удалила все наши копии компилятора C.
(Акцент мой)
На ddстранице руководства ничего не говорится о исправлении, и я не думаю, что в любом случае это можно изменить.
Могут ли быть исправлены двоичные файлы dd? Есть ли в этом историческое значение?
odфайл для байт-шестнадцатеричных кодов, найдитеbs=$patchsize count=1 seek=$((offset/bs)) conv=notruncнужное смещение, решите, что вы хотите редактировать, и ваш патч прямо сейчас.