Bạn có biết tên của tệp trong kho lưu trữ trước khi giải nén nó không? Bạn có thể tạo một chức năng để giải nén /tmp
, chỉnh sửa và làm mới zip:
zipedit(){
echo "Usage: zipedit archive.zip file.txt"
unzip "$1" "$2" -d /tmp
vi /tmp/$2 && zip -j --update "$1" "/tmp/$2"
}
Như đã nói, cách sử dụng là:
zipedit myarchive.zip myfile.txt
Điều này giải nén tệp được đặt tên từ kho lưu trữ, lưu nó vào /tmp
, chỉnh sửa nó vi
sau đó thêm nó trở lại vào kho lưu trữ, trong khi "bỏ qua" đường dẫn. Thêm vào .bash_profile của bạn, giả sử bash
...
EDIT: Dưới đây là phiên bản hoạt động với các thư mục con bên trong kho lưu trữ ... Lưu ý, không sử dụng dấu gạch chéo trước tên của thư mục (nghĩa là myfolder/file.txt
không sử dụng /myfolder/file.txt
). Nếu bạn chỉnh sửa một tệp chưa tồn tại trong kho lưu trữ, nó sẽ tạo nó cho bạn. Cũng không chắc chắn nếu nó sẽ làm việc với đường dẫn tuyệt đối đến tệp zip. Tốt nhất gắn bó với người thân.
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"
}
Cảm ơn câu hỏi. Có lẽ tôi cũng sẽ sử dụng cái này!
Một chỉnh sửa khác: Chưa được kiểm tra, nhưng tôi đã đọc nó vim
và emacs
cả hai sẽ chỉnh sửa trực tiếp các tệp jar?