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

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

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

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

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

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

Спасибо.


person Michael    schedule 13.06.2011    source источник


Ответы (1)


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

person Joe    schedule 13.06.2011
comment
можно ли извлечь только конкретный файл, изменить его и вернуть обратно? или мне нужно снова все сжимать? - person Michael; 15.06.2011
comment
Любая утилита ZIP, которую я когда-либо использовал, воссоздает архив с такими модификациями. - person Joe; 15.06.2011