क्या आपको पता है कि संग्रह में फ़ाइल का नाम रखने से पहले उसे खोल देना चाहिए? आप ज़िप को अनज़िप करने /tmp
, संपादित करने और ताज़ा करने के लिए एक फंक्शन बना सकते हैं :
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
...
संपादित करें: नीचे एक संस्करण है जो संग्रह के अंदर सबफ़ोल्डर्स के साथ काम करता है ... ध्यान दें, फ़ोल्डर के नाम से पहले स्लैश का उपयोग myfolder/file.txt
न करें (अर्थात उपयोग न करें /myfolder/file.txt
)। यदि आप ऐसी फ़ाइल संपादित करते हैं जो पहले से ही संग्रह में मौजूद नहीं थी, तो यह आपके लिए बनाएगी। यह भी सुनिश्चित नहीं है कि यह ज़िप फ़ाइल के लिए पूर्ण पथ के साथ काम करेगा या नहीं। रिश्तेदार के साथ सबसे अच्छा छड़ी।
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
क्या दोनों जार फ़ाइलों को सीधे संपादित करेंगे?