Как изменить заголовки файлов из командной строки?

Я видел и использовал hex-редактор GUI bless, чтобы модифицировать растровые изображения в соответствии с отдельным типом файла (от bmp до srf). Мой вопрос заключается в том, как программно изменять заголовки файлов с помощью командной строки. Какие программы позволят мне вносить изменения в заголовки файлов из сценария оболочки?

Я посмотрел в менеджере пакетов synaptic, но я новичок в модификации файлов в шестнадцатеричном формате. Растровые изображения считаются двоичными файлами? Если это запрос на рекомендацию программного обеспечения, приемлемый ответ позволил бы мне записывать, перезаписывать или изменять конкретные значения в определенных местах (например, в первых 16 байтах файла) в командной строке.

1
задан 13 May 2018 в 09:11

1 ответ

xxd очень мощный Hex-редактор командной строки, который позволяет Вам изменять двоичные файлы с единственной командной строкой. Можно использовать его этот путь:

xxd -r -p -o OFFSET <(echo NEW HEX SIGNATURE) FILE  # or
echo NEW HEX SIGNATURE | xxd -r -p -o OFFSET - FILE

Давайте “преобразуем” 01.png файл к rar формату (преобразовывают подпись в шестнадцатеричную систему 5261 7221 1A07 0000, смещение 01):

$ file 01.png 
01.png: PNG image data, 1280 x 1024, 8-bit/color RGB, non-interlaced
$ xxd 01.png | head -1
00000000: 8950 4e47 0d0a 1a0a 0000 000d 4948 4452  .PNG........IHDR
$ xxd -r -p -o 0 <(echo 5261 7221 1A07 0000) 01.png
$ file 01.png 
01.png: RAR archive data, vdb, os: MS-DOS
$ xxd 01.png | head -1
00000000: 5261 7221 1a07 0000 0000 000d 4948 4452  Rar!........IHDR

Посмотрите man xxd для других полезных опций и большого количества полезных примеров.

1If смещение 0 опция -o может быть опущен, я включаю его здесь только для показа его использования.

Если Вам нравится он лучше, можно сделать усечение с dd также, но это кажется излишне сложным:

dd conv=notrunc obs=1 if=<(xxd -r -p -o 0 <(echo 5261 7221 1A07 0000)) of=01.png

Дополнительные материалы для чтения (помимо обычной справки командной строки):

3
ответ дан 7 December 2019 в 12:29

Другие вопросы по тегам:

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