Às vezes, preciso fazer alterações em um arquivo .zip ou .jar, portanto, geralmente, movo o arquivo para /tmp
, extraio todos os arquivos unzip
, edito alguns arquivos e, em seguida, zipamos novamente os arquivos. Isso funciona, mas pode ser entediante. Existe um utilitário ou script de shell que eu possa usar para editar um arquivo dentro de um arquivo zip sem chamar explicitamente unzip
e zip
(mesmo que seja apenas um invólucro em torno desses comandos)?
47
Respostas:
Você sabe o nome do arquivo no arquivo morto antes de descompactá-lo? Você pode criar uma função para descompactar
/tmp
, editar e atualizar o zip:Como diz, o uso é:
Isso descompacta o arquivo nomeado do arquivo morto, salva-o
/tmp
, edita-o evi
depois o adiciona de volta ao arquivo morto, enquanto "junking" o caminho. Adicione ao seu .bash_profile, assumindobash
...EDIT: Abaixo está uma versão que funciona com subpastas dentro do arquivo morto ... Nota, não use uma barra antes do nome da pasta (por exemplo,
myfolder/file.txt
não use/myfolder/file.txt
). Se você editar um arquivo que ainda não existia no arquivo morto, ele será criado para você. Também não tenho certeza se ele funcionará com o caminho absoluto para o arquivo zip. Melhor ficar com parente.Obrigado pela pergunta. Provavelmente vou acabar usando esse também!
Outra edição: não testado, mas li isso
vim
eemacs
ambos editarão arquivos jar diretamente?fonte
O Vim suporta a edição transparente de arquivos dentro de arquivos zip. Basta executar:
vim file.zip
e você verá uma lista de arquivos dentro do arquivo zip. Escolha o que você deseja editar, altere o que deseja e saia com: x
Se
vim
responder com:.. basta executar
:set modifiable
ou:set ma
(fonte: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )fonte
Resposta curta: NÃO.
Se for um invólucro, você está chamando esses comandos. De qualquer forma, o melhor que consigo pensar é abrir o arquivo usando
file-roller
, se você estiver em um ambiente X, que possa funcionar com um simples clique duplo, dependendo da configuração. Você pode clicar duas vezes no arquivo compactado para abri-lo e editá-lo:Ao salvar seu arquivo editado, você deverá obter esta caixa de diálogo:
Você também pode criar um script para isso, mas isso fica complicado se você tiver arquivos compactados que contenham vários arquivos. Deixe-me saber se é isso que você precisa e eu posso preparar algo.
fonte
Resposta pedante curta; não. Se você pensa em compactação, está usando redundância para reduzir os arquivos internos, para que qualquer edição altere o arquivo inteiro dentro do arquivo morto, possivelmente o arquivo morto.
Se você está sendo menos teórico, mais prático, mais "Eu não quero ter que descompactar manualmente / zipar", existem ferramentas que você pode usar. ark no Linux é um que eu usei. Você também pode montar o arquivo com fuse-zip , embora provavelmente seja mais trabalhoso que um arquivo temporário.
fonte
fuse-zip
.De acordo com a página do manual
zip
(versão online para fácil referência: http://linux.die.net/man/1/zip ), ozip
comando possui um-u
sinalizador que descreve como:fonte
O gerenciador de arquivos do Directory Opus 12 permitirá que você navegue no Zip, arraste e solte o arquivo editado de outra pasta nele e sobrescreva o arquivo que deseja editar e fará tudo em tempo real. Muito fácil
fonte
Eu escrevi um plugin do Vim que estende o estoque zip.vim para navegar e editar arquivos zip aninhados.
https://github.com/lbrayner/vim-rzip
fonte
Você pode usar o editor de texto padrão do KDE, por exemplo:
fonte