Apakah Anda tahu nama file di arsip sebelum membuka ritsletingnya? Anda dapat membuat fungsi untuk unzip /tmp, mengedit, dan menyegarkan zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Seperti yang dikatakan, penggunaannya adalah:
zipedit myarchive.zip myfile.txt
Ini membongkar file bernama dari arsip, menyimpannya /tmp, mengeditnya vilalu menambahkannya kembali ke arsip, sambil "membuang sampah" jalan. Tambahkan ke .bash_profile Anda, dengan asumsi bash...
EDIT: Di bawah ini adalah versi yang berfungsi dengan subfolder di dalam arsip ... Catatan, jangan gunakan garis miring sebelum nama folder (yaitu, gunakan myfolder/file.txttidak /myfolder/file.txt). Jika Anda mengedit file yang belum ada dalam arsip, itu akan membuatnya untuk Anda. Juga tidak yakin apakah itu akan berfungsi dengan jalur absolut ke file zip. Stick terbaik dengan relatif.
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"
}
Terima kasih untuk pertanyaannya. Saya mungkin akan berakhir menggunakan yang ini juga!
Suntingan lain: Belum diuji, tetapi saya membacanya vimdan emacsapakah keduanya akan mengedit file jar secara langsung?