Чи знаєте ви ім'я файлу в архіві, перш ніж розпакувати його? Ви можете зробити функцію для розпакування /tmp
, редагування та оновлення zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Як говориться, використання:
zipedit myarchive.zip myfile.txt
Це розпаковує названий файл з архіву, зберігає його /tmp
, редагує, а vi
потім додає його назад до архіву, при цьому "перев'язуючи" шлях. Додайте до свого .bash_profile, припускаючи bash
...
EDIT: Нижче наведена версія, яка працює з підпапками всередині архіву ... Зауважте, не використовуйте косу рису перед назвою папки (тобто myfolder/file.txt
не використовуйте /myfolder/file.txt
). Якщо ви відредагуєте файл, який ще не існував в архіві, він створить його для вас. Також не впевнений, чи буде він працювати з абсолютним шляхом до zip-файлу. Найкраща палиця з родичем.
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"
}
Дякую за запитання. Я, мабуть, в кінцевому підсумку скористаюся і цим!
Ще одна редакція: Неперевірено, але я прочитав це, vim
і emacs
обидва будуть редагувати файли jar безпосередньо?