জিইউআই দিয়ে তৈরি জিপ ফাইলগুলিতে শেলটিতে তৈরি জিপ ফাইলের চেয়ে বেশি বাইট রয়েছে


15

আমি একই ডিরেক্টরিতে দুটি জিপ ফাইল তৈরি করেছি । একটি জিইউআই সহ, অন্যটি সহ:

$ zip -r alpha_cmd.zip Alpha

আলফা ডিরেক্টরির 164 আইটেম সঙ্গে 33,640 MB।

জিইউআই দ্বারা নির্মিত জিপ ফাইলটি কমান্ড লাইনে নির্মিত জিপ ফাইলের চেয়ে 2,100 বাইট বড়।

জিপিআই দিয়ে জিপ ফাইলটি আরও বড় কেন তৈরি হয়?

দ্রষ্টব্য : জিপ ফাইলগুলির বিভিন্ন আকার রয়েছে, যখন আনজিপ করা হয়, প্রতিটি ডিরেক্টরিতে বাইটের ঠিক একই সংখ্যা থাকে number মূলত, আমি জিওআই এবং শেল কমান্ডের সাহায্যে আমার ফাইল সিস্টেম পরিচালনা করে প্রচলিত অসঙ্গতিগুলি সম্পর্কে খুব সতর্ক


একটিতে অদৃশ্য ফাইল থাকতে পারে, অন্যটি নেই?
তেটসুজিন

এই এসইউ উত্তর থেকে চেষ্টা করুনditto -ck --rsrc --sequesterRsrc --keepParent folder folder.zip
ব্যবহারকারীর 151019

@ মার্ক আমি প্রতিক্রিয়া জানাতে ভুলে গেছি এই "ditto" কমান্ডটি ফাইন্ডারের মতো হুবহু ফাইল তৈরি করে। এবং ডিটো / জিপ / "ফাইন্ডার জিপ" ফাইলগুলি সমস্ত ক্রস প্ল্যাটফর্ম। আপনার সময় ও শ্রম জন্য আপনাকে ধন্যবাদ।
ডেভিড

উত্তর:


20

ফাইন্ডার থেকে জিপ করা ম্যাকগুলিতে অদৃশ্য একটি ফোল্ডার __MACOSX যুক্ত করে, এতে কাস্টম আইকনগুলির মতো ওএস এক্স রিসোর্স কাঁটাচামচ রয়েছে। উইকিপিডিয়া থেকে :

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


6
গৌণ সংশোধন: এটি কেবল রিসোর্স কাঁটাচামচ নয়, এটি সমস্ত ধরণের ফাইলের মেটাডেটা যা জিপ ফর্ম্যাটটি স্থানীয়ভাবে হ্যান্ডেল করে না, অ্যাপলডুবাল ফর্ম্যাটে এনকোডযুক্ত । এর মধ্যে স্পটলাইট মন্তব্য, ট্যাগ, ফাইন্ডার ফ্ল্যাগস, কোয়ারেন্টাইন ডেটা ইত্যাদির পাশাপাশি সংস্থানসমূহের কাঁটাচামচ অন্তর্ভুক্ত থাকবে।
গর্ডন ডেভিসন

এবং আমি ভাবছিলাম যে বেশিরভাগ জিপগুলিতে "__MACOSX" ফোল্ডারটি কী ছিল ... আপনি আরও কি জানেন, তাই না?
Ave নগরী:

আর একটি রেফারেন্স যা উত্তরটি আলোকিত করতে পারে: স্ট্যাকওভারফ্লো
ডিএ ভিনসেন্ট

4

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

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

উদাহরণস্বরূপ, 7-জিপ সাধারণত .zipঅন্যান্য জিপ প্রোগ্রামের চেয়ে ছোট ফাইলগুলি তৈরি করে। (এবং না, আমি এটির নিজস্ব .7zফাইল ফর্ম্যাট সম্পর্কে কথা বলছি না It এটির মধ্যে আরও ভাল প্লেইন-জিপ সংক্ষেপক রয়েছে))

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


__MACOSX ফোল্ডারগুলি কি সিআরসি গণনায় প্রভাব ফেলবে না?
কেন্ট

1
জিপ একটি পৃথক সিআরসি সংরক্ষণ করে প্রতিটি সংক্ষিপ্ত ফাইলের সংক্ষেপিত সামগ্রী। (তাই না, দুটি কারণে: ডিরেক্টরিগুলিতে কেবলমাত্র অন্য ফাইল থাকে, তাদের নিজস্ব ডেটাগুলির একটি ব্লক নয় And এবং দুটি, জিপ মেটাডেটাতে সঞ্চিত সিআরসি পৃথক প্রতিটি ফাইলের জন্য)) সুতরাং যে সমস্ত ফাইলের মধ্যে একই ছিল দুটি জিপ ফাইল সিআরসি এবং সঙ্কোচিত আকারে মিলবে।
পিটার কর্ডেস

@ পিটারকার্ডস যে বিভিন্ন জিপ প্রয়োগগুলি বিভিন্ন ফাইল আকার তৈরি করতে পারে তা হ'ল আমার দৃষ্টি আকর্ষণ করেছে। আমি জানতাম যে শেলটি "/ usr / bin / zip" কার্যকর করা হয়েছিল। তবে যেহেতু ফাইন্ডার আমাকে একটি পৃথক ফাইলের আকার দিয়েছেন, আমি ভেবেছিলাম যে ফাইন্ডার সম্পূর্ণ ভিন্ন নির্বাহযোগ্য (এবং এটি আমার কাছে বিরক্তিকর ছিল) ব্যবহার করে। আমি যদি কীভাবে রুট করতে পারি এবং যদি কিছুটা সাহস পেতাম তবে পরীক্ষার জন্য আমি "/ usr / bin / zip" "/ tmp" এ স্থানান্তরিত করে ফেলতাম এবং তারপরে একটি ফাইন্ডার জিপ চেষ্টা করতাম (এবং এটি আরও ভাল একটি ত্রুটি জারি করে)। তবে, আমি কাজ করার চেষ্টা করেছি এবং আমার ম্যাককে অস্থিতিশীল করার ঝুঁকি নিতে পারি না!
ডেভিড

অস্থায়ীভাবে /usr/bin/zipআলাদা সংস্করণের সাথে প্রতিস্থাপনের সবচেয়ে নিরাপদ উপায় হ'ল ln /usr/bin/zip /usr/bin/zip.standard; mv new_zip /usr/bin/zip। এইভাবে, আপনার সর্বদা একটি থাকে /usr/bin/zip, কারণ আপনি সিস্টেমের প্রয়োগকে পরমাণুভাবে প্রতিস্থাপন করেন। এছাড়াও, পুরানো সংস্করণটি সবেমাত্র নতুন নামকরণ করা হয়েছে, সরানো হয়নি /tmp(যা সম্ভবত অন্য কোনও ফাইল সিস্টেমে থাকতে পারে)) এটি অক্ষম করার জন্য, আমি কেবল এটির নামকরণ করেছি zip.disab, ফাইন্ডার বিভাজিত কিনা তা দেখুন, তবে এটির পুনরায় নামকরণ করুন। তবে জিপ-ক্রিয়েশন লাইব্রেরির ফাংশনগুলি সাধারণ। ফাইন্ডার প্রায় অবশ্যই কাঁটাচামচ / সম্পাদন করে না /usr/bin/zip
পিটার কর্ডেস

@ পিটারকর্ডস আমি এক্সিকিউটেবলের পরিবর্তে লাইব্রেরি কল করার বিষয়ে এটি পেয়েছি। তবে, এক্সিকিউটেবলটি "/ usr / bin / ditto" হত, এবং যাইহোক "/ usr / bin / zip" নয়। এই ফোরামের সহায়তা দুর্দান্ত। আপনার সময় ও শ্রম জন্য আপনাকে ধন্যবাদ।
ডেভিড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.