একাধিক জিজেপ ফাইল দ্রুত কনটেনটেশন


93

আমার কাছে জিজিপ ফাইলগুলির তালিকা রয়েছে:

file1.gz
file2.gz
file3.gz

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

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

উত্তর:


107

জিজিপ ফাইলগুলির সাহায্যে আপনি কেবল ফাইলগুলি একসাথে একত্র করতে পারেন, এরকম:

cat file1.gz file2.gz file3.gz > allfiles.gz

জিজিপ আরএফসি প্রতি ,

একটি জিজিপ ফাইলের মধ্যে "সদস্য" (সংক্ষেপিত ডেটা সেট) এর একটি সিরিজ থাকে। [...] সদস্যরা কেবল ফাইলে একের পর এক উপস্থিত হয় যার আগে, এর মধ্যে বা পরে কোনও অতিরিক্ত তথ্য নেই।

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

যেহেতু বিদ্যমান সরঞ্জামগুলি সাধারণত অতিরিক্ত সদস্যদের জন্য ফাইলের নাম শিরোনামকে উপেক্ষা করে, ফলাফল থেকে পৃথক ফাইলগুলি বের করা সহজেই সম্ভব নয়। আপনি যদি এটি সম্ভব হতে চান তবে পরিবর্তে একটি জিপ ফাইল তৈরি করুন। জিপ এবং জিজেআইপি উভয়ই আসল সংকোচনের জন্য ডিফল্ট অ্যালগরিদম ব্যবহার করে (জিপ কিছু অন্যান্য সংক্ষেপণ অ্যালগরিদমকে সমর্থন করে পাশাপাশি একটি বিকল্প - পদ্ধতি 8 হ'ল এটি জিজেআইপি'র সংকোচনের সাথে সামঞ্জস্যপূর্ণ); পার্থক্যটি মেটাডেটা ফর্ম্যাটে। যেহেতু মেটাডেটা সঙ্কুচিত, তাই জিজিপ শিরোনামগুলি ছিনিয়ে নেওয়া এবং জিপ ফাইল শিরোনামগুলি এবং তার পরিবর্তে একটি কেন্দ্রীয় ডিরেক্টরি রেকর্ডটি টেক করা যথেষ্ট সহজ। পড়ুন gzip, বিন্যাস স্পেসিফিকেশন এবং জিপ ফরম্যাটে স্পেসিফিকেশন


41
নাহ। শুধু cat file1.gz file2.gz file3.gz > allfiles.gz। এটি সত্যই সহজ :)
বিডনলান

4
প্রযুক্তিগতভাবে বলতে গেলে সেগুলি সংরক্ষিত আছে। এটি কেবলমাত্র বিদ্যমান সরঞ্জামগুলিতে সাধারণত পৃথকভাবে সেগুলি বের করার ক্ষমতা রাখে না। আপনি একটি জিপ শিরোলেখ এবং ডিরেক্টরি নির্মাণের দিকে নজর রাখতে চাইতে পারেন - জিপ ফর্ম্যাটটিতে একই অন্তর্নিহিত সংক্ষেপণ অ্যালগরিদম ব্যবহার করা হয়, সুতরাং এটি (সঙ্কুচিত) মেটাডেটা পরিবর্তন করার বিষয় মাত্র। কটাক্ষপাত gzip.org/zlib/rfc-gzip.html (উৎস বিন্যাস) এবং pkware.com/documents/casestudies/APPNOTE.TXT
বিডনলান

20
জিজেড ফাইলগুলির একটি জিপ তৈরির চেয়ে ভাল, কেবল সেগুলি ট্যারি করুন। এটি catউত্তরের মতো তবে কিছু অতিরিক্ত মেটাডেটা সহ। আসল ফাইলের নামগুলি পেতে আপনি পরে এটি অনার করে নিতে পারেন, তারপরে প্রয়োজন অনুসারে সমস্ত বা আনপ্যাক করুন।
sorpigal

4
@ আলভাস, এর ইনপুটটিকে সংক্রামিত করে, zcatযাতে আপনি একটি .gzএক্সটেনশান সহ একটি সংক্রমিত আউটপুট দিতে চান ।
বিডনলান

4
স্পষ্টতই কিছু সরঞ্জাম রয়েছে যা প্রথম gzip'ed সদস্যের শেষে পৌঁছে গেলে ভুল করে থামবে। github.com/pysam-developers/pysam/issues/…
জেরেমি লাইপজিগ

51

man 1 gzipআপনার প্রয়োজনীয়তা সম্পর্কে এখানে যা বলা হয়েছে তা এখানে ।

একাধিক সংক্ষেপিত ফাইলগুলি সংমিশ্রণ করা যায়। এই ক্ষেত্রে, গানজিপ একবারে সমস্ত সদস্যকে বের করে নেবে। উদাহরণ স্বরূপ:

gzip -c file1  > foo.gz
gzip -c file2 >> foo.gz

তারপর

gunzip -c foo

সমতুল্য

cat file1 file2

বলা বাহুল্য, file1প্রতিস্থাপন করা যেতে পারে file1.gz

আপনার অবশ্যই এটি লক্ষ্য করুন:

গানজিপ সমস্ত সদস্যকে একবারে বের করে আনবে

সুতরাং সমস্ত সদস্যকে পৃথকভাবে পেতে, আপনি যদি এটি করতে চান তবে আপনাকে অতিরিক্ত কিছু ব্যবহার করতে হবে বা লিখতে হবে।

তবে এটি ম্যান পেজেও সম্বোধন করা হয়েছে।

আপনি যদি একাধিক সদস্যের সাথে একটি একক সংরক্ষণাগার ফাইল তৈরি করতে চান, যাতে সদস্যদের পরে স্বতন্ত্রভাবে উত্তোলন করা যায়, একটি তীর বা জিপ হিসাবে একটি আর্কিভার ব্যবহার করুন। জিএনইউ -zট্যারে স্বচ্ছভাবে জিজিপ আহ্বান করার বিকল্পটিকে সমর্থন করে । gzip প্রতিস্থাপন হিসাবে নয়, তার পরিপূরক হিসাবে ডিজাইন করা হয়েছে।


13

শুধু বিড়াল ব্যবহার করুন। এটি খুব দ্রুত (আমার জন্য 500 এমবি জন্য 0.2 সেকেন্ড)

cat *gz > final
mv final final.gz

এরপরে আপনি zcat সহ আউটপুটটি সুন্দর দেখতে নিশ্চিত করতে পারেন:

zcat final.gz

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

পিভি:

আরও ভাল, যদি আপনার কাছে এটি থাকে তবে বিড়ালের পরিবর্তে 'পিভি' করুন:

pv *gz > final
mv final final.gz

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


11

আপনি এই ফাইলগুলির একটি টার ফাইল তৈরি করতে পারেন এবং তারপরে নতুন জিজিপ ফাইল তৈরি করতে ট্যারি ফাইলটি জিপিপ করতে পারেন

tar -cvf newcombined.tar file1.gz file2.gz file3.gz
gzip newcombined.tar

8
নতুন টার ফাইলটি কেন আপনার জিপ করা উচিত? এটি ইতিমধ্যে জিপ করা হয়েছে (টারের মেটাডেটা বাদে, যা ছোট হওয়া উচিত)।
thiton

4
তুমি ঠিক. আপনি এটি জিপিপ করুন বা না করুন ফাইলের আকারের মধ্যে খুব বেশি পার্থক্য হবে না কারণ পৃথক ফাইলগুলি ইতিমধ্যে জিজেপ করা আছে। এটি কেবলমাত্র তিনটি পৃথক ফাইলের মধ্যে জিপিপ ফাইল রাখতে চেয়েছিল।
দ্রোণ

4
অতিরিক্ত গিজিপ কোনও লাভের জন্যই সামগ্রীতে অ্যাক্সেসটি কমিয়ে দেয়। এটি আমার কাছে মনে হয় যে ওপিএসের প্রয়োজনীয়তাটি হ'ল ফলস্বরূপ সংরক্ষণাগারটি একটি একক ফাইল হতে পারে এবং ফলস্বরূপ ফাইলটি একটি জিজেপ ফাইল হওয়া উচিত বলে মনে করার কোনও কারণ নেই।
এমসি 0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.