Vim podporuje transparentní úpravy souborů uvnitř souborů zip. Stačí provést:
vim file.zip
a zobrazí se vám seznam souborů v archivu zip. Vyberte ten, který chcete upravit, změňte, co chcete, a ukončete pomocí :x
Pokud vim
odpovídá:
Nelze provádět změny, možnost 'modifikovatelné' je vypnutá
.. stačí spustit :set modifiable
nebo :set ma
(zdroj:https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)
Znáte název souboru v archivu před jeho rozbalením? Můžete vytvořit funkci pro rozbalení na /tmp
, upravte a obnovte soubor zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Jak se říká, použití je:
zipedit myarchive.zip myfile.txt
Tím se rozbalí pojmenovaný soubor z archivu a uloží se do /tmp
, upraví jej v vi
pak jej přidá zpět do archivu, zatímco „vyhazuje“ cestu. Přidejte do svého .bash_profile, za předpokladu bash
...
UPRAVIT: Níže je uvedena verze, která pracuje s podsložkami v archivu... Všimněte si, že před názvem složky nepoužívejte lomítko (tj. použijte myfolder/file.txt
ne /myfolder/file.txt
). Pokud upravíte soubor, který v archivu ještě neexistoval, vytvoří jej za vás. Také si nejste jisti, zda to bude fungovat s absolutní cestou k souboru zip. Nejlepší je zůstat u příbuzného.
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"
}
Děkuji za otázku. Pravděpodobně nakonec použiji i tento!
Další úprava:Netestováno, ale četl jsem, že vim
a emacs
budou oba upravovat soubory jar přímo?
Krátká odpověď:NE.
Pokud se jedná o obálku, jste volání těchto příkazů. Každopádně nejlepší, co mě napadá, je otevřít soubor pomocí file-roller
, pokud jste v prostředí X, může to fungovat jednoduchým dvojitým kliknutím, v závislosti na vašem nastavení. Poté můžete dvakrát kliknout na komprimovaný soubor a otevřít jej a poté jej můžete upravit:
$ file-roller b3.zip
Když uložíte svůj upravený soubor, měl by se zobrazit tento dialog:
Mohli byste pro to také vytvořit skript, ale to se komplikuje, pokud máte komprimované archivy, které obsahují více souborů. Dejte mi vědět, jestli to potřebujete, a možná budu moci něco uvařit.