Kennen Sie den Namen der Datei im Archiv, bevor Sie sie entpacken? Sie können eine Funktion zum Entpacken /tmp
, Bearbeiten und Aktualisieren der Zip erstellen :
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Wie es heißt, ist die Verwendung:
zipedit myarchive.zip myfile.txt
Dies entpackt die benannte Datei aus dem Archiv, speichert sie dort /tmp
, bearbeitet sie dort vi
und fügt sie dann wieder dem Archiv hinzu, während der Pfad "blockiert" wird. Fügen Sie Ihrem .bash_profil hinzu, vorausgesetzt bash
...
BEARBEITEN: Nachfolgend finden Sie eine Version, die mit Unterordnern im Archiv funktioniert. Beachten Sie, dass Sie keinen Schrägstrich vor dem Namen des Ordners verwenden (dh myfolder/file.txt
nicht verwenden /myfolder/file.txt
). Wenn Sie eine Datei bearbeiten, die noch nicht im Archiv vorhanden ist, wird sie für Sie erstellt. Ich bin mir auch nicht sicher, ob es mit dem absoluten Pfad zur Zip-Datei funktioniert. Am besten bei Verwandten bleiben.
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"
}
Danke für die Frage. Ich werde wahrscheinlich auch dieses verwenden!
Eine andere Bearbeitung: Ungetestet, aber ich habe das gelesen vim
und emacs
werden beide JAR-Dateien direkt bearbeiten?