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 vi
lalu 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.txt
tidak /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 vim
dan emacs
apakah keduanya akan mengedit file jar secara langsung?