কোনও জিপ ফাইলের ভিতরে ফাইলগুলি প্রথমে স্পষ্টভাবে না বের করে এডিট করার কোনও উপায় আছে?


47

আমার মাঝে মাঝে একটি .zip বা .jar ফাইলে পরিবর্তন করা দরকার, তাই আমি সাধারণত ফাইলটি সরিয়ে নিয়ে যাই /tmp, সমস্ত ফাইল দিয়ে সমস্ত ফাইল বের করতে পারি , unzipকয়েকটি ফাইল সম্পাদনা করি এবং তারপরে ফাইলগুলি পুনরায় জিপ আপ করি। এটি কাজ করে তবে ক্লান্তিকর হতে পারে। কোনও ইউটিলিটি বা শেল স্ক্রিপ্ট রয়েছে যা আমি কোনও জিপ ফাইলের অভ্যন্তরে কোনও ফাইলকে সম্পাদনা করার জন্য স্পষ্টভাবে কল না করে unzipএবং zip(এমনকি এই আদেশগুলির চারপাশে কেবল একটি মোড়ক থাকলেও) ব্যবহার করতে পারি?


উত্তরটি যদি জাজার ফাইলগুলিতে কাজ করে তবে কেবল কৌতূহল? (আমি সেখানে এটি পরীক্ষা করিনি))
বেরো

@ বেরো যেহেতু যারা জিপ কম্প্রেশন অ্যালগরিদম ব্যবহার করেন তাদের উচিত। সমাধানটির সন্ধানের জন্য এটি আমার মূল প্রেরণা কারণ আমার কাছে একটি অ্যাপ্লিকেশন সার্ভারে .war ফাইল স্থাপন করা ছিল যা আমি কেবল একটি একক ফাইল পরিবর্তন করার জন্য পুনরায় প্যাকেজিং এবং পুনঃ-স্থাপনের মতো মনে করি না।
অস্টিন

গ্রেট। আমি ফাংশনটি ঠিক করার চেষ্টা করতে যাচ্ছি যাতে এটি সংরক্ষণাগারের অভ্যন্তরে ডিরেক্টরি কাঠামো সংরক্ষণ করে। বর্তমানে আমি মনে করি এটি কেবলমাত্র রুট স্তরের ফাইলগুলিতে কাজ করে তবে আমার উদ্দেশ্যে সাবফোল্ডারগুলি আরও দরকারী useful
বেরো

@ বেরি এটি দুর্দান্ত। এটি জিজ্ঞাসার আগে, আমি স্বেচ্ছাসেবক কমান্ডগুলি কার্যকর করতে জিপ ফাইল "ভিতরে" একটি স্যুডু শেল চালু করার জন্য একটি অজগর স্ক্রিপ্ট কোড করতে যাচ্ছিলাম। আপনি কী নিয়ে আসবেন তাতে আমি আগ্রহী।
অস্টিন

ঠিক আছে, সাব-ফোল্ডারগুলিকে সমর্থন করার জন্য আরও একটি সমাধান যুক্ত করেছে এবং এটি সীমিত পরীক্ষায় কাজ করে ।
বেরো

উত্তর:


19

সংরক্ষণাগার থেকে ফাইলটি আনজিপ করার আগে আপনি কী জানেন? আপনি /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_ প্রোফাইলে যোগ করুন, ধরে নিচ্ছেন 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দুজনেই সরাসরি জার ফাইলগুলি সম্পাদনা করব?


আমি নিশ্চিত করতে পারি যে লিনাক্সের কমান্ড লাইন থেকে জিপ-ফাইল সম্পাদনা করার জন্য ভিআইএম দুর্দান্ত কাজ করে, টিপটির জন্য অনেক ধন্যবাদ!
থমাস বিন্ডজাস

60

ভিপ জিপ ফাইলগুলির অভ্যন্তরে স্বচ্ছভাবে ফাইল সম্পাদনা করে। শুধু চালানো:

vim file.zip

এবং আপনাকে জিপ সংরক্ষণাগারটির ভিতরে থাকা ফাইলগুলির একটি তালিকা দেখানো হবে। আপনি যেটি সম্পাদনা করতে চান তা চয়ন করুন, আপনি যা চান তা পরিবর্তন করুন এবং এর সাথে প্রস্থান করুন: x

যদি এর সাথে vimপ্রতিক্রিয়া জানায়:

পরিবর্তন করা যায় না, 'পরিবর্তনযোগ্য' বন্ধ is

.. মাত্র চালান :set modifiableবা :set ma(উত্স: https://stackoverflow.com/questions/5745506/vim-modifiable-is-off )


2
যাইহোক, ভিমে ডিফল্ট জিপ সমর্থন কেবলমাত্র একটি স্তরের জিপ সম্পাদনা করতে পারে। আপনি যদি জিপসের অভ্যন্তরে জিপগুলি সম্পাদনা করতে চান তবে আপনার এই ভিম প্লাগইনটি ব্যবহার করা উচিত ।
jesjimher

1
ইমাস সহ একই।
মাইক 12

4
এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত
মার্টিজন বার্গার

3
জীবন রক্ষাকারী
ভিএম

4

সংক্ষিপ্ত উত্তর: না।

যদি একটি লেফাফা, আপনি হয় এই কমান্ড কলিং। যাইহোক, আমি সবচেয়ে ভালভাবে যা ভাবতে পারি তা হ'ল file-rollerযদি আপনি কোনও X পরিবেশে থাকেন তবে এটি আপনার সেটআপের উপর নির্ভর করে একটি সাধারণ ডাবল ক্লিক দিয়ে কাজ করতে পারে using তারপরে সংক্ষেপিত ফাইলটি খোলার জন্য আপনি ডাবল ক্লিক করতে পারেন এবং তারপরে আপনি এটি সম্পাদনা করতে পারেন:

$ file-roller b3.zip 

আপনি যখন আপনার সম্পাদিত ফাইলটি সংরক্ষণ করেন, আপনার এই ডায়ালগটি পাওয়া উচিত:

আপনি এটির জন্য একটি স্ক্রিপ্টও তৈরি করতে পারেন, তবে যদি আপনার একাধিক ফাইলযুক্ত সংরক্ষণাগারগুলি সংকুচিত করে থাকে তবে তা জটিল হয়ে ওঠে। আপনার যদি প্রয়োজন হয় তবে তা আমাকে জানান এবং আমি কিছু রান্না করতে সক্ষম হতে পারি।

এখানে চিত্র বর্ণনা লিখুন


0

সংক্ষিপ্ত পেডেন্টিক উত্তর; কোন। আপনি যদি সংক্ষেপণের কথা ভাবেন, আপনি ফাইলগুলি ভিতরে সংক্ষিপ্ত করতে রিডানডেন্সি ব্যবহার করছেন, সুতরাং কোনও সম্পাদনা পুরো ফাইলটি সংরক্ষণাগার, সম্ভবত সংরক্ষণাগারটির মধ্যে পরিবর্তন করে।

আপনি যদি কম তাত্ত্বিক, আরও ব্যবহারিক, আরও বেশি "আমি ম্যানুয়ালি আনজিপ / জিপ করতে চাই না" এমন কোনও সরঞ্জাম রয়েছে যা আপনি ব্যবহার করতে পারেন। লিনাক্সের সিন্দুকটি আমি ব্যবহার করেছি। আপনি ফিউজ-জিপ দিয়ে সংরক্ষণাগারটিও মাউন্ট করতে পারেন , যদিও এটি কোনও টেম্প ফাইলের চেয়ে সম্ভবত বেশি কাজ।


কেউ কেন -1 দিয়েছে জানি না। জন্য +1 fuse-zip
myrdd

0

ম্যান পেজ অনুসারে zip(সহজ রেফারেন্সের জন্য অনলাইন সংস্করণ: http://linux.die.net/man/1/zip ), zipকমান্ডটিতে একটি -uপতাকা রয়েছে যা এটি বর্ণনা করে:

ইতিমধ্যে জিপ সংরক্ষণাগারে থাকা সংস্করণটির চেয়ে সাম্প্রতিককালে পরিবর্তন করা থাকলে কেবল জিপ সংরক্ষণাগারটিতে বিদ্যমান এন্ট্রি প্রতিস্থাপন (আপডেট) করুন।


0

ডিরেক্টরি Opus 12 ফাইল ম্যানেজার আপনাকে জিপ ব্রাউজ করার অনুমতি দেবে, তারপরে সম্পাদিত ফাইলটিকে অন্য ফোল্ডার থেকে এটিতে টানুন এবং ড্রপ করুন এবং আপনি যে ফাইলটি সম্পাদনা করতে চান সেটি ওভাররাইট করুন, এবং এটি সমস্ত কিছু উড়ে যাওয়ার পরে এটি করবে। খুব সহজ


0

আমি একটি ভিম প্লাগইন লিখেছি যা নেস্টেড জিপ ফাইলগুলি ব্রাউজ করতে এবং সম্পাদনা করতে স্টক zip.vim প্রসারিত করে।

https://github.com/lbrayner/vim-rzip


আপনি কিভাবে এটি লিনাক্সে ইনস্টল করবেন?
পান্ড্রেই

আমি সংগ্রহস্থলের README এ ইনস্টলেশন সংক্রান্ত নির্দেশাবলী যুক্ত করেছি । ফিরে দেখুন।
lbrayner

0

আপনি উদাহরণস্বরূপ স্ট্যান্ডার্ড কে-ডি-কে টেক্সট সম্পাদক ব্যবহার করতে পারেন:

  1. সংরক্ষণাগার পরিচালক হিসাবে সংরক্ষণাগার খুলুন
  2. কেডিআই গুই সম্পাদনায় টেক্সট ফাইলটি খুলুন
  3. পাঠ্য ফাইল এবং সিস্টেম সংরক্ষণ করুন সংরক্ষণাগারটি রিফ্রেশ করতে বলুন - হ্যাঁ ক্লিক করুন
  4. সংরক্ষণাগার এবং সংরক্ষণাগার ফোল্ডারের জন্য অনুমতি সম্পর্কে ভুলবেন না (আমার প্রিয় ভুল)

আপনার পোস্টে বিন্যাস ঠিক করুন।
ডেভিডবাউমান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.