GNU/Linux >> Belajar Linux >  >> Linux

Apakah ada cara untuk mengedit file di dalam file zip tanpa mengekstraknya secara eksplisit terlebih dahulu?

Vim mendukung pengeditan file secara transparan di dalam file zip. Jalankan saja:

vim file.zip

dan Anda akan diperlihatkan daftar file di dalam arsip zip. Pilih salah satu yang ingin Anda edit, ubah yang Anda inginkan, dan keluar dengan :x

Jika vim menanggapi dengan:

Tidak dapat melakukan perubahan, 'dapat dimodifikasi' tidak aktif

.. jalankan saja :set modifiable atau :set ma (sumber:https://stackoverflow.com/questions/5745506/vim-modifiable-is-off)


Apakah Anda tahu nama file di arsip sebelum membuka ritsletingnya? Anda bisa membuat fungsi unzip ke /tmp , edit, dan segarkan 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 ke /tmp , edit di vi lalu menambahkannya kembali ke arsip, sambil "membuang" jalurnya. Tambahkan ke .bash_profile Anda, dengan asumsi bash ...

EDIT: Di bawah ini adalah versi yang berfungsi dengan subfolder di dalam arsip... Perhatikan, jangan gunakan garis miring sebelum nama folder (mis. gunakan myfolder/file.txt bukan /myfolder/file.txt ). Jika Anda mengedit file yang belum ada di arsip, itu akan membuatnya untuk Anda. Juga tidak yakin apakah itu akan berfungsi dengan jalur absolut ke file zip. Tetap terbaik dengan kerabat.

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 atas pertanyaannya. Saya mungkin akan menggunakan yang ini juga!

Suntingan lain:Belum diuji, tetapi saya membaca vim itu dan emacs apakah keduanya akan mengedit file jar secara langsung?


Jawaban singkat:TIDAK.

Jika itu pembungkus, Anda adalah memanggil perintah-perintah ini. Bagaimanapun, yang terbaik yang dapat saya pikirkan adalah membuka file menggunakan file-roller , jika Anda berada di lingkungan X, itu mungkin berfungsi dengan klik dua kali sederhana, tergantung pada penyiapan Anda. Anda kemudian dapat mengklik dua kali pada file terkompresi untuk membukanya dan kemudian Anda dapat mengeditnya:

$ file-roller b3.zip 

Saat Anda menyimpan file yang telah diedit, Anda akan mendapatkan dialog ini:

Anda juga dapat membuat skrip untuk ini, tetapi akan 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.


Linux
  1. Memindahkan file di Linux tanpa mv

  2. Cara Mudah Menyembunyikan File dan Direktori di Linux

  3. bagaimana saya bisa mencari file dan meng-zip-nya dalam satu file zip

  1. Apakah ada cara untuk mengedit bookmark nautilus (pengelola file) yang ada?

  2. Bagaimana cara menulis file ke USB tanpa menjadi root?

  3. Apakah ada cara untuk melanjutkan scp file yang terputus?

  1. Apakah ada cara untuk memotong file NETCDF?

  2. Bagaimana saya bisa mengedit file jika tidak ada vi, vim, joe, dll?

  3. Apakah mungkin membaca file teks di dalam file zip yang dilindungi kata sandi tanpa kata sandi?