Иногда мне нужно внести изменения в файл .zip или .jar, поэтому я обычно перемещаю файл в /tmp
, извлекаю все файлы с помощью unzip
, редактирую несколько файлов, а затем заново заархивирую файлы. Это работает, но это может быть утомительно. Есть ли утилита или сценарий оболочки, которые я могу использовать для редактирования файла внутри zip-файла без явного вызова unzip
и zip
(даже если это просто оболочка для этих команд)?
47
Ответы:
Знаете ли вы имя файла в архиве перед его разархивированием? Вы можете сделать функцию, чтобы распаковать
/tmp
, отредактировать и обновить ZIP-архив:Как говорится, использование это:
Это распаковывает именованный файл из архива, сохраняет его
/tmp
, редактирует,vi
затем добавляет его обратно в архив, в то же время «сбрасывая» путь. Добавьте к вашему .bash_profile, предполагаяbash
...РЕДАКТИРОВАТЬ: Ниже приведена версия, которая работает с подпапками внутри архива ... Обратите внимание, не используйте косую черту перед именем папки (т.е.
myfolder/file.txt
не используйте/myfolder/file.txt
). Если вы отредактируете файл, которого еще не было в архиве, он создаст его для вас. Также не уверен, будет ли он работать с абсолютным путем к zip-файлу. Лучшая палка с родственником.Спасибо за вопрос. Я, вероятно, в конечном итоге использовать этот тоже!
Другое редактирование: не проверено, но я прочитал это,
vim
иemacs
оба будут редактировать файлы JAR напрямую?источник
Vim поддерживает прозрачное редактирование файлов внутри zip-файлов. Просто выполните:
vim file.zip
и вам будет показан список файлов внутри zip-архива. Выберите тот, который вы хотите редактировать, измените то, что вы хотите, и выйдите с помощью: x
Если
vim
ответит:.. просто запустите
:set modifiable
или:set ma
(источник: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )источник
Краткий ответ: НЕТ.
Если это обертка, вы будете называть эти команды. В любом случае, лучшее, что я могу придумать, - это открыть файл, используя
file-roller
, если вы находитесь в среде X, который может работать простым двойным щелчком, в зависимости от ваших настроек. Затем вы можете дважды щелкнуть сжатый файл, чтобы открыть его, а затем отредактировать:Когда вы сохраните отредактированный файл, вы должны получить этот диалог:
Вы также можете создать сценарий для этого, но это усложняется, если у вас есть сжатые архивы, которые содержат несколько файлов. Дайте мне знать, если это то, что вам нужно, и я смогу что-нибудь приготовить.
источник
Краткий педантичный ответ; нет. Если вы думаете о сжатии, вы используете избыточность, чтобы сократить файлы внутри, поэтому любое редактирование изменяет весь файл в архиве, возможно, в архиве.
Если вы менее теоретичны, более практичны, более «я не хочу вручную расстегивать молнию», есть инструменты, которые вы можете использовать. Арк в Linux - это то, что я использовал. Вы также можете смонтировать архив с помощью fuse-zip , хотя это, вероятно, больше, чем временный файл.
источник
fuse-zip
.Согласно
zip
справочной странице для (онлайн-версия для удобства: http://linux.die.net/man/1/zip ),zip
команда имеет-u
флаг, который она описывает как:источник
Диспетчер файлов Directory Opus 12 позволит вам просмотреть Zip, затем перетащить отредактированный файл из другой папки в него и перезаписать файл, который вы хотите отредактировать, и он сделает все это на лету. Очень просто
источник
Я написал плагин Vim, который расширяет стандартный zip.vim для просмотра и редактирования вложенных zip-файлов.
https://github.com/lbrayner/vim-rzip
источник
Вы можете использовать стандартный текстовый редактор KDE, например:
источник