Terkadang saya perlu membuat perubahan pada file .zip atau .jar, jadi saya biasanya memindahkan file /tmp
, mengekstrak semua file dengan unzip
, mengedit beberapa file, dan kemudian zip kembali file. Ini bekerja, tetapi bisa membosankan. Apakah ada skrip utilitas atau shell yang dapat saya gunakan untuk mengedit file di dalam file zip tanpa secara eksplisit memanggil unzip
dan zip
(bahkan jika itu hanya pembungkus perintah ini)?
47
Jawaban:
Apakah Anda tahu nama file di arsip sebelum membuka ritsletingnya? Anda dapat membuat fungsi untuk unzip
/tmp
, mengedit, dan menyegarkan zip:Seperti yang dikatakan, penggunaannya adalah:
Ini membongkar file bernama dari arsip, menyimpannya
/tmp
, mengeditnyavi
lalu menambahkannya kembali ke arsip, sambil "membuang sampah" jalan. Tambahkan ke .bash_profile Anda, dengan asumsibash
...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.Terima kasih untuk pertanyaannya. Saya mungkin akan berakhir menggunakan yang ini juga!
Suntingan lain: Belum diuji, tetapi saya membacanya
vim
danemacs
apakah keduanya akan mengedit file jar secara langsung?sumber
Vim mendukung pengeditan file secara transparan di dalam file zip. Eksekusi saja:
vim file.zip
dan Anda akan ditampilkan daftar file di dalam arsip zip. Pilih yang ingin Anda edit, ubah yang Anda inginkan, dan keluar dengan: x
Jika
vim
merespons dengan:.. jalankan saja
:set modifiable
atau:set ma
(sumber: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )sumber
Jawaban singkat: TIDAK.
Jika itu wrapper, Anda sedang menelepon perintah ini. Bagaimanapun, yang terbaik yang bisa saya pikirkan adalah membuka file menggunakan
file-roller
, jika Anda berada di lingkungan X, yang mungkin bekerja dengan klik dua kali sederhana, tergantung pada pengaturan Anda. Anda kemudian dapat mengklik dua kali pada file yang dikompresi untuk membukanya dan kemudian Anda dapat mengeditnya:Saat Anda menyimpan file yang diedit, Anda harus mendapatkan dialog ini:
Anda dapat membuat skrip untuk ini juga, tetapi itu menjadi rumit jika Anda memiliki arsip terkompresi yang berisi banyak file. Beri tahu saya jika itu yang Anda butuhkan dan saya mungkin bisa memasak sesuatu.
sumber
Jawaban pedantic pendek; tidak. Jika Anda berpikir tentang kompresi, Anda menggunakan redundansi untuk mempersingkat file di dalamnya, jadi setiap pengeditan mengubah seluruh file dalam arsip, mungkin arsip.
Jika Anda kurang teoretis, lebih praktis, lebih banyak "Saya tidak ingin harus secara manual unzip / zip" ada alat yang dapat Anda gunakan. bahtera di Linux adalah salah satu yang saya gunakan. Anda juga bisa memasang arsip dengan fuse-zip , meskipun itu mungkin lebih berfungsi daripada file temp.
sumber
fuse-zip
.Menurut halaman manual untuk
zip
(versi online untuk referensi mudah: http://linux.die.net/man/1/zip ),zip
perintah memiliki-u
bendera yang digambarkan sebagai:sumber
Manajer file Direktori Opus 12 akan memungkinkan Anda untuk menelusuri Zip, lalu seret dan letakkan file yang diedit dari folder lain ke dalamnya dan timpa file yang ingin Anda edit, dan itu akan melakukan semuanya dengan cepat. Sangat mudah
sumber
Saya menulis plugin Vim yang memperluas stock zip.vim untuk menelusuri dan mengedit file zip bersarang.
https://github.com/lbrayner/vim-rzip
sumber
Anda dapat menggunakan editor teks KDE standar misalnya:
sumber