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:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Como diz, o uso é:
zipedit myarchive.zip myfile.txt
Isso descompacta o arquivo nomeado do arquivo morto, salva-o /tmp
, edita-o e vi
depois o adiciona de volta ao arquivo morto, enquanto "junking" o caminho. Adicione ao seu .bash_profile, assumindo bash
...
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.
zipedit(){
echo "Usage: zipedit archive.zip folder/file.txt"
curdir=$(pwd)
unzip "$1" "$2" -d /tmp
cd /tmp
vi "$2" && zip --update "$curdir/$1" "$2"
# remove this line to just keep overwriting files in /tmp
rm -f "$2" # or remove -f if you want to confirm
cd "$curdir"
}
Obrigado pela pergunta. Provavelmente vou acabar usando esse também!
Outra edição: não testado, mas li isso vim
e emacs
ambos editarão arquivos jar diretamente?