জিপ ফাইলগুলি কীভাবে একত্রিত / মার্জ করবেন?


21

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

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

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

আমি যেটা বুঝি পিকজিপ জিপ ফাইলগুলি নিজেরাই একত্রিত করবে, কিন্তু এমন একটি নির্ভরযোগ্য এবং দ্রুত ফ্রি পদ্ধতির কেউ কি আমাকে বলতে পারে?


1
জয়ের জন্য জিপমার্জ করুন
কোড ব্লিং

উত্তর:


7

আপনি এটি পছন্দ করতে পারবেন না তবে: সবকিছুকে একটি সঠিক ফোল্ডারে সজ্জিত করুন, তারপরে ফলাফলটি জিপ করা সবচেয়ে কার্যকর উপায়।

অন্যথায়, আপনি প্রচুর অপচয়কৃত সিপিইউ চক্রটি শেষ করবেন:

  • ধরে নিন আপনার ফলাফলটি 'ফার্স্ট.জিপ'-এ চলে গেছে
  • '২.জিপ', '3..জিপ' ইত্যাদির প্রতিটি ফাইল আনজিপ করা এবং তারপরে আবার 'ফার্স্ট.জিপ'-এ জিপ করতে হবে
  • '২.zip' তে একটি ফাইল রয়েছে 'foobar.txt' এবং '3.zip' তে অন্য একটি ফাইল রয়েছে 'foobar.txt'। আপনি যেভাবে এটি মার্জ করতে চান সেভাবে মার্জ করার ফলে এটি 'এক্স বার সংকোচনের' দিকে পরিচালিত হয়
  • ফাইলের শেষে একটি .zip এর টোক হয়: আপনি আরও কন্টেন্ট যুক্ত করুন (মাঝখানে
    একটি ফাইল আপডেট করে .zip এর মাঝখানে) এবং পুরো ফাইলটি আবার লিখতে হবে

সুতরাং, imho কেবল ' আনজিপ ' বুদ্ধিমান ব্যবহার করুন :

% mkdir all
% for x in *.zip ; do unzip -d all -o -u $x ; done
% zip -r all.zip all

আনজিপিংয়ের ক্রমটি গুরুত্বপূর্ণ, আমি আপনার জিপ নামগুলির ধরণটি জানি না, তবে আমি প্রথমে সর্বাধিক নতুন জিপ ফাইলটি বের করতে পারি, আনজিপ-এর '-u' বিকল্পটি কেবল নতুন ফাইলগুলিকে ওভাররাইট করে বা যদি না তৈরি করে তবে ফাইলগুলি তৈরি করে ইতিমধ্যে সেখানে. ফলস্বরূপ, আপনি কেবলমাত্র সর্বশেষতম ফাইলগুলি আনজিপ করবেন এবং ফলাফলটি একবারে জিপ করবেন।


এটি ব্যবহারকারীর দৃষ্টিকোণ থেকে সবচেয়ে কার্যকর হতে পারে - তবে এটি সঠিক নয়। একটি জিপ ফাইলের টেবিলটি আসলে শেষদিকে থাকে তবে আপনি যেকোন জিপের শেষে নির্বিচারে ফাইল লিখতে পারেন এবং তারপরে একটি নতুন ফাইল টেবিল লিখতে পারেন। সর্বশেষ রেকর্ড সর্বদা জয়ী। স্ক্রিপ্টিং বা প্রোগ্রামিংয়ের সাথে যাদের সামান্য পরিচিতি রয়েছে তারা কেবল কোনও বাইনারি খণ্ডগুলি ঘুরিয়ে নিয়ে এবং জিপ টেবিলটি আপডেট করে কোনও ফাইল সঙ্কুচিত বা সংক্ষেপে ছাড়াই এই পুরো প্রক্রিয়াটি করতে পারেন।
সিএসে

প্রকৃতপক্ষে, আপনি কেবলমাত্র সমস্ত জিপকে একটি একক ফাইলে (আপনি যে ক্রমটি চান) ক্রমশ সংযুক্ত করতে পারেন এবং তারপরে কেবলমাত্র ফাইলের সর্বশেষ সংস্করণগুলি অন্তর্ভুক্ত করতে শেষে একটি নতুন ফাইল রেকর্ড লিখতে পারেন। এর অতিরিক্ত সুবিধা রয়েছে যে জিপটিতে এখনও ফাইলগুলির পূর্ববর্তী সমস্ত সংস্করণ রয়েছে যা নেসেসারি যদি পুনরুদ্ধার করা যায়
সিএসে

"'2.zip', '3.zip' ইত্যাদির প্রতিটি ফাইল আনজিপ করাতে হবে এবং তারপরে আবার 'first.zip' এ জিপ করা উচিত" সঠিক নয়। zipmergeউপযোগ মার্জ decompressing এবং পুনরায় সংকুচিত, উদাহরণস্বরূপ ছাড়া আর্কাইভ িজপ।
ZachB

আমি ব্যবহার করেছি unzipping/ zippingএবং না uncompress / decompress। হ্যাঁ, স্পষ্টতই একটি 2.zip(সংকুচিত ব্লব) এর একটি এন্ট্রি নিতে এবং এটিকে স্থানান্তর করতে পারে first.zipএবং এইভাবে কোনও "সংক্ষেপণ" সংঘটিত হতে পারে না। তবে আপনাকে ব্লকটি বের করতে হবে 2.zip, টিওসি-র উপস্থিতির সন্ধান করতে হবে first.zip, যদি এটি হয় তবে সেখানে বিদ্যমান প্রবেশকে প্রতিস্থাপন করে (যার অর্থ আপনাকে পুরো ফাইলটি মূলত পুনরায় লিখতে হবে) বা শেষে এটিকে সংযোজন করতে হবে - এবং এর পরে আপনার প্রয়োজন হবে জিপের টোক যোগ করুন। আমি দেখতে পাচ্ছি না যে কীভাবে zipmergeজিপ-এন্ট্রিগুলি আলাদাভাবে মার্জিন করা যায় (এককভাবে সংক্ষেপণ)
আকীরা

-1 কারণ এই কাজটি করার আরও অনেক বেশি দক্ষ উপায় রয়েছে এবং এটি "সবচেয়ে কার্যকর উপায়" হওয়ার কোনও যুক্তিই সামান্যতম জ্ঞান তৈরি করে না। every file [...] has to be unzipped and then zipped again- না, এটিই আপনার সমাধানটি করে। in '2.zip' exists a file 'foobar.txt' and in '3.zip' exists another file 'foobar.txt'. merging it the way you want to merge it leads to 'compress it X times'- না এটা হয় না। কেন হবে? you add more content [...] and the whole file has to be rewritten- না, আপনি একটি পাসে আউটপুট লিখুন। কেন কেউ এই upvote?
বেনর্গ

4

কেবল জিপের -g বিকল্পটি ব্যবহার করুন, যেখানে আপনি যেকোন সংখ্যক জিপ ফাইল একটিতে যুক্ত করতে পারেন (পুরানো ফাইলগুলি না বের করে)। এটি আপনার উল্লেখযোগ্য সময় সাশ্রয় করবে।

জিপমিয়ারে একবার দেখুন


4
-gবিদ্যমান জিপতে ফাইল যুক্ত করে। এটি তাদের একীভূত করে না। উদাহরণস্বরূপ: একটি নতুন zip -g result.zip other.zipফাইল other.zipতৈরির . পরিবর্তে, ফলাফল.জিপ - গ্রোকে নির্দিষ্ট জিপ সংরক্ষণাগারটি বৃদ্ধি করুন (যুক্ত করুন) করুন। যদি এই অপারেশন ব্যর্থ হয়, জিপ সংরক্ষণাগারটিকে তার মূল অবস্থায় ফিরিয়ে আনার চেষ্টা করে। পুনরুদ্ধার ব্যর্থ হলে, সংরক্ষণাগারটি দূষিত হয়ে যেতে পারে। কোনও বিদ্যমান সংরক্ষণাগার নেই বা যখন কমপক্ষে একজন সংরক্ষণাগার সদস্যকে আপডেট বা মুছে ফেলা উচিত তখন এই বিকল্পটি উপেক্ষা করা হবে `
আকিরা

4

আপনি যা খুঁজছেন তা এটি নাও হতে পারে তবে ফ্রি পিঁপড়া বিল্ড সরঞ্জামের মধ্যে জিপফাইলে একত্রীকরণের ক্ষমতা অন্তর্ভুক্ত রয়েছে।

https://ant.apache.org/manual/Tasks/zip.html


2

https://linux.die.net/man/1/zipstream :

জিপমিটার উত্স জিপ সংরক্ষণাগারগুলি source-zipলক্ষ্য জিপ সংরক্ষণাগারগুলিতে মার্জ করে target-zip। ডিফল্টরূপে, উত্স জিপ সংরক্ষণাগারগুলিতে থাকা ফাইলগুলি লক্ষ্য জিপ সংরক্ষণাগারে একই নামের বিদ্যমান ফাইলগুলি ওভাররাইট করে।


1

আমি ভাবছিলাম আপনি কোনও অস্থায়ী ডিরেক্টরিতে ফাইলগুলি স্ক্রিপ্ট করতে পারবেন।

এই কমান্ড লাইনে সমস্যা আছে। সংরক্ষণাগারগুলি আনজিপিংয়ের আদেশ দেওয়ার কোনও উপায় আমি খুঁজে পাইনি, সুতরাং কোনও পুরানো সংরক্ষণাগারটি একটি নতুন সংরক্ষণাগারটিকে ওভাররাইট করতে পারে। এই সমস্যাটি অ্যানজিপার ব্যবহার করে কাটিয়ে উঠতে পারে কেবলমাত্র নতুন হলে ওভাররাইট করার জন্য একটি কমান্ড লাইন সুইচ রয়েছে। আমি সাধারণত 7-জিপ ব্যবহার করি যার মধ্যে এমন কমান্ড লাইন বিকল্প নেই।

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

for /f %f in ('dir /b *.zip') do "c:\program files\7-zip\7z" x %f -oc:\testdir -r -aoa

অন্য আনজিপিং প্রোগ্রামটি ব্যবহার করতে এটি পরিবর্তন করতে "c:\program files\7-zip\7z" x %f -oc:\testdir -r -aoaআপনি প্রতিটি ফাইলটিতে যে কোনও কমান্ড প্রয়োগ করবেন তা কেবল এটি প্রতিস্থাপন করুন। %fআপনি যে ফাইলটি আনজিপ করতে চান তার নামের জন্য স্থানধারক হিসাবে ব্যবহার করুন ।

আমি নিখরচায় বা অন্যথায় কোনও পালিশ অ্যাপ্লিকেশন সন্ধান করার চেষ্টা করেছি এবং সত্যিই এটি খুঁজে পাইনি।

আশা করি এটি আপনাকে একটি ভাল সূচনা দেবে এবং উইনজিপ বা অনুরূপ কিছু ওভাররাইট সমস্যার যত্ন নিতে পারে।

শুভকামনা।


0

যদি আমি সঠিকভাবে মনে রাখি, pkzip একটি কমান্ড-লাইন প্রোগ্রাম ছিল।

জিপের এখনও একটি কমান্ড-লাইন সংস্করণ রয়েছে যা পিকজিপের সাথে সামঞ্জস্যপূর্ণ বলে দাবি করে।

এটিকে ইনফো-জিপ বলা হয় এবং আপনার ওএসের জন্য একটি সংস্করণ থাকা উচিত।


আমি যে কার্যকারিতা সম্পর্কে জিজ্ঞাসা করছি তাতে কি আছে? এটি কোথায় এই সক্ষমতা তালিকাবদ্ধ তা আমি খুঁজে পাচ্ছি না।
সিসি ক্রিস

1
ইনফো-জিপ স্যুট ফাইলগুলি পিকেজিপের সাথে সামঞ্জস্যপূর্ণ করে তোলে তবে প্রোগ্রামগুলি নিজেরাই আলাদা এবং একীকরণ বিকল্পটি অন্তর্ভুক্ত বলে মনে হয় না।
কার্লএফ

ঠিক আছে, দুঃখিত, আমি বহু বছর আগে DOMAIN / OS এর অধীনে অ্যাপোলো ওয়ার্কস্টেশনটিতে তথ্য-জিপ সংকলন করতে এবং চালাতে সক্ষম হয়েছি। আমি মনে করি এটি তখনও ডস / ভিএমএস / ইউনিক্স এবং আরও কয়েকজনকে বিভিন্ন বৈশিষ্ট্য সরবরাহ করেছিল। আমি মনে করি এটি আরও বিকশিত হতে পারে।
প্যাভিয়াম

0

নেটটিতে উইনজিপ কমান্ড লাইনের সন্ধান করুন। উইনজিপের আপনার উইন্ডোজ-এর যে কোনও সংস্করণ ইনস্টল করা থাকতে পারে তার ফিট করার জন্য কমান্ড লাইন সরঞ্জামগুলির বেশ কয়েকটি সংস্করণ রয়েছে। কমান্ড লাইন সরঞ্জাম ডাব্লুডিজিআইপি-তে একটি "ফ্রেশন" বিকল্প রয়েছে যা কেবলমাত্র নতুন ফাইলগুলিকে জিপ করবে যেগুলি সামিট আউটপুট জিপ ফাইলের কোনও ফাইলের নামের সাথে মেলে।

ডিরেক্টরিতে একটি ফাইল আনজিপ করে তারপরে WZzip -f এই ফাইলগুলিকে একটি আউটপুট সংমিশ্রণ জিপ ফাইলটিতে যুক্ত করতে উপরের ফোর স্টেটমেন্টে মোড়ানো WZunzip ব্যবহার করুন। তারপরে ফর লুপটি পরবর্তী ইনপুট ফাইলে একমাত্র আউটপুটে একমাত্র এবং কেবলমাত্র সমষ্টি আউটপুট ফাইলটিতে কাজ করতে পুনরাবৃত্তি করে। ইনপুট ফাইলগুলির ক্রম কোনও বিবেচনা করে না কারণ ডাব্লুডিজিপ-ফ কেবলমাত্র আউটপুট ফাইলে কেবল ইনপুট ডেটা যুক্ত করলেই কেবল ইনপুট ফাইল যুক্ত হবে add আউটপুট ফাইলে থাকা সমস্ত ফাইলও যুক্ত করা হবে be তারপরে আপনি ফলটিকে একটি ফোল্ডারে আনজিপ করতে পারেন এবং দক্ষতার সাথে প্যাক করা ফলাফল ফাইলটি পেতে আবার জিপ আপ করতে পারেন। এমনকি আপনি ব্যাচ ফাইলের শেষে ফর লুপের পরে এটি স্বয়ংক্রিয়ভাবে করতে পারেন।

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