Если я файл кошки в другой файл являюсь там способом получить их отдельный снова?

Если я использую cat pic1.png >> pic2.png есть ли способ добраться pic1.png из этого pic2.png?

Я знаю, что это работает, если я просто использую некоторый архивный файл и просто разархивировал его, но я хочу знать, это возможный другой путь.

3
задан 10 October 2014 в 18:09

2 ответа

Один путь состоит в том, чтобы посмотреть на формат файла PNG

https://en.wikipedia.org/wiki/Portable_Network_Graphics#File_header

, формат файла PNG имеет заголовок и серию блоков, которые определяют способ, которым создается файл PNG. Если Вы объединяете в цепочку через блоки, необходимо быть в состоянии извлечь файлы PNG. Вы могли бы стать удачливыми и просто использовать первые 8 байтов файла PNG как идентификатор для нахождения разделительной точки.

0
ответ дан 17 November 2019 в 20:50

С cat file_b >> file_a Вы просто добавляете содержание file_b кому: file_a. Никакое изменение формата, никакое другое управление (1) (2).

Можно возвратиться, просто удалив последние байты файлов; вероятно, что-то как

 head --bytes=-$(wc --bytes file_b | cut -d" " -f1) file_a > old_file_a

должен работать.

Объяснение:

wc --bytes file_b 

возвращает длину file_b в байтах (и название файлов, как"5678 file_b")

wc --bytes file_b | cut -d" " -f1

избавляется от имени файла в выводе wc путем хранения просто первого поля ("5678"). Затем мы используем замену процесса для помещения того числа как аргумента head:

head --bytes=-5678 file_a 

выводы все содержание file_a но последние 5 678 байтов.


Сноски:

(1) В примере OP я сомневаюсь что pic2.png файл является все еще допустимым файлом PNG...

(2) Включенный в "другое управление" то, что нет никакой записи исходной длины файла или любого маркера, которые разделяют эти два файла. Если после cat Вы удаляете file_b у Вас нет способа разделить их снова, не зная длину исходных файлов. archiver формат (tar, zip, rar) делает точно эту бухгалтерию для Вас (и сжатие и контрольная сумма и другая вещь, когда-то).

3
ответ дан 17 November 2019 в 20:50

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

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