Как изменить файл внутри архивного файла (.ear) без извлечения всего файла

#linux #file #archive #binaryfiles #ear

#linux #файл #Архив #двоичные файлы #ear

Вопрос:

У меня есть .ear файл (архивный файл типа tar / zip), внутри которого есть файл, который я хочу изменить.

Например, myfile.ear содержит 1.txt , и я хочу изменить 1.txt на 2.txt и, возможно, также изменить часть содержимого внутри 1.txt (как sed делает)

Я действительно хочу избежать необходимости извлекать myfile.ear , изменять файл и сжимать его снова.

Кто-нибудь знает способ добиться этого в Linux?

И если это невозможно, я также хотел бы знать, почему

Спасибо.

Ответ №1:

Файлы EAR — это просто JAR-файлы, которые являются просто ZIP-файлами. Формат ZIP, IIRC, содержит метаданные и данные, чередующиеся, поэтому изменение одного файла (который может быть больше / меньше файла, который он заменяет) может не поместиться (или оставить пробел), поэтому на практике файл должен быть перезаписан при внесении изменений.

Комментарии:

1. возможно ли затем извлечь только определенный файл, изменить его и поместить обратно снова? или мне нужно все заново сжать?

2. Любая ZIP-утилита, которую я когда-либо использовал, воссоздает архив с подобными изменениями.