مقارنة خيارات ضغط ملفات Linux

Linux File Compression Options



يعد الضغط بشكل عام طريقة مفيدة ترميز المعلومات بشكل أساسي باستخدام بيانات أقل من البيانات الأصلية. في حالة Linux ، هناك العديد من خيارات الضغط ، لكل منها فوائده الخاصة.

توفر توزيعة Linux العامة الوصول إلى عدد قليل من آليات الضغط المفيدة والبسيطة حقًا. هذه المقالة سوف تركز عليهم فقط.







أنواع الضغط

الضغط هو ترميز وتمثيل المعلومات باستخدام وحدات بت أقل مما كانت عليه في الأصل. في حالة ضغط الملف ، تستخدم طريقة الضغط الخوارزمية الخاصة بها والحساب الرياضي لتوليد مخرجات أقل بشكل عام من حجم الملف الأصلي. نظرًا لكيفية عمل الضغط المختلف والطبيعة العشوائية للملفات ، فقد تختلف المسافة المقطوعة بالأميال بشكل كبير.



هناك نوعان من الضغط.



  • الضياع : هذا نوع محفوف بالمخاطر من الضغط ولا يضمن تكامل البيانات. بشكل أساسي ، بمجرد ضغطه ، هناك خطر يتمثل في عدم إمكانية إعادة بناء الملف الأصلي باستخدام الأرشيف المضغوط.
    من الأمثلة القوية على هذا النوع من الضغط تنسيق MP3 المعروف. عندما يتم إنشاء ملف MP3 من ملف الصوت الأصلي ، يكون أصغر بكثير من ملف الموسيقى الأصلي. هذا يسبب فقدان بعض جودة الصوت.
  • ضغط بلا خسائر : هذا هو أكثر أنواع الضغط استخدامًا. باستخدام طريقة ضغط بدون فقد ، يمكن إعادة بناء الملف الأصلي من الملف المضغوط. طرق الضغط التي سأناقشها في هذه المقالة كلها طرق ضغط بدون فقد.

ضغط Linux

تتوفر غالبية طرق الضغط من الأداة قطران . بالنسبة إلى ضغط zip ، سنستخدم ملف أزيز أداة. بافتراض تثبيت هذه الأدوات على نظامك بالفعل ، فلنبدأ.





في البداية ، نحتاج إلى ملف اختبار. قم بتشغيل الأمر التالي لإنشاء واحد.

$قاعدة 64/ديف/يوراندوم| رئيس 20000000 >file.txt



سيتم إنشاء ملف نصي بحجم 20 ميغا بايت.

الآن ، دعنا ننشئ 10 نسخ من الملف. معًا ، يبلغ حجمهما 200 ميغابايت.

Zip للضغط

Zip شائع جدًا. لإنشاء ملف مضغوط ، تتطلب أداة zip بنية الأوامر التالية.

$أزيز <انتاج>.أزيز<إدخال>

لضغط جميع الملفات الموجودة ضمن دليل الاختبار في ملف مضغوط واحد ، قم بتشغيل هذا الأمر.

$أزيزtest.zip*

كان حجم الإدخال 200 ميغا بايت. بعد الضغط ، أصبح الآن 152 ميغابايت!

بشكل افتراضي ، ستطبق أداة zip ضغط DEFLATE. ومع ذلك ، فإنه قادر أيضًا على استخدام ضغط bzip2. ليس ذلك فحسب ، بل يمكنك أيضًا إنشاء ملفات مضغوطة محمية بكلمة مرور! تعرف على المزيد حول zip .

Tar للضغط على Linux

القطران ليس طريقة ضغط. بدلاً من ذلك ، يتم استخدامه غالبًا لإنشاء أرشيفات. ومع ذلك ، يمكنه تنفيذ عدد من طرق الضغط الشائعة للأرشيف.

للتعامل مع أرشيف القطران (المعروف أيضًا باسم تاربال) ، توجد أداة القطران. تعلم المزيد عن القطران. بشكل عام ، تستخدم أداة tar بنية الأوامر التالية.

$قطران <والخيارات> <ملف إلاخراج> <إدخال>

لإضافة ملفات الاختبار إلى أرشيف tar واحد ، قم بتشغيل الأمر التالي.

$قطران -cvftest.tar*

هنا ، يظل حجم الملف كما هو.

Gzip للضغط على Linux

GNU Zip أو gzip هي طريقة ضغط شائعة أخرى ، في رأيي ، أفضل من zip التقليدي بسبب ضغطها الأفضل. إنه منتج مفتوح المصدر تم إنشاؤه بواسطة Mark Adler و Jean-Loup Gailly والذي كان مقدرًا في الأصل ليحل محل UNIX ضغط خدمة.

لإدارة أرشيفات gzip ، هناك أداتان متاحتان: tar و gzip. دعونا نتحقق من كلاهما.

أولاً ، أداة gzip. إليك كيف تبدو بنية أوامر gzip.

$gzip <اختيار> <إدخال>

على سبيل المثال ، سيستبدل الأمر التالي test1.txt بالملف المضغوط test1.txt.gz.

$gzip -الخامسtest1.txt

إذا كنت تريد ضغط دليل بأكمله باستخدام gzip ، فقم بتشغيل هذا الأمر. هنا ، العلامة -r مخصصة للضغط العودي. سينتقل Gzip عبر جميع المجلدات ويضغط الملف (الملفات) الفردية في كل منها.

$gzip -r <مسار الملف>

يدعم Gzip قيم قوة ضغط متنوعة ، بدءًا من 1 (أقل ضغط ، أسرع) إلى 9 (أفضل ضغط ، أبطأ).

$gzip -الخامس -9 <ملف>

للتحكم بشكل أفضل في الإخراج وسهولة الاستخدام ، يعتبر القطران أفضل للمهمة. قم بتشغيل الأمر التالي.

$قطران -cvzftest.tar.gz*

والنتيجة مماثلة للضغط باستخدام DEFLATE ، مما ينتج عنه 152 ميجابايت بعد الضغط.

Bzip2 للضغط على Linux

Bzip2 هي أداة مجانية ومفتوحة المصدر تستخدم خوارزمية Burrows-Wheeler للضغط. تم تقديم bzip2 لأول مرة في عام 1996 ، وهو يُستخدم بكثرة كبديل لضغط gzip.

مثل gzip ، هناك أداتان للعمل مع bzip2: tar و bzip2.

تعمل أداة bzip2 بشكل مشابه لأداة gzip. يمكن أن يعمل فقط مع ملف واحد في كل مرة. هذا هو هيكل القيادة.

$bzip2 <اختيار> <إدخال>

فلنضغط ملف test1.txt. هنا ، العلم -v للوضع المطول.

$bzip2 -الخامسtest1.txt

على غرار gzip ، يدعم bzip2 أيضًا مستويات مختلفة من الضغط ، بدءًا من 1 (افتراضي ، استخدام أقل للذاكرة) إلى 9 (ضغط شديد ، استخدام عالي للذاكرة).

$bzip2 -الخامس -9 <ملف>

أفضل طريقة لاستخدام ضغط bzip2 هي استخدام القطران. استخدم الأمر التالي.

$قطران -cvjftest.tar.bz2*

تم تحسين الضغط قليلاً عن سابقاتها. الآن ، تقلص حجم الملف إلى 151.7 ميغابايت.

XZ للضغط على Linux

إنه وافد جديد نسبيًا في مجال الضغط. تم إصداره لأول مرة في عام 2009 ، وشهد نموًا مطردًا في الاستخدام منذ ذلك الحين.

تستخدم أداة ضغط xz خوارزمية LZMA2 المعروفة بنسبة ضغط أكبر مقارنةً بـ gzip و bzip2 ، مما يجعلها خيارًا رائعًا عندما تريد توفير أقصى قدر من مساحة القرص. ومع ذلك ، فإن هذا يأتي مع تكلفة متطلبات الذاكرة العالية واستهلاك الوقت.

الملف الذي تم إنشاؤه بواسطة أداة ضغط XZ له الامتداد .xz. لضغط ملف واحد ، يمكنك الاتصال مباشرة بأداة XZ.

$xz<اختيار> <ملف>

على سبيل المثال ، قم بتشغيل الأمر التالي لضغط ملف test1.txt.

$xz-الخامسtest1.txt

على غرار طرق الضغط الأخرى المذكورة ، تدعم xz أيضًا مجموعة متنوعة من قوة الضغط ، بدءًا من 1 (أقل ضغط ، أسرع) إلى 9 (أفضل ضغط ، أبطأ). إذا لم يكن لديك أي اعتبار للوقت وترغب فقط في توفير مساحة ، فاذهب إلى أقصى الحدود.

$xz-الخامس -9 <ملف>

لإنشاء ملف XZ مضغوط من جميع ملفات الاختبار ، قم بتشغيل هذا الأمر.

$قطران -cvJftest.tar.xz*

هنا ، حجم ملف الإخراج هو 153.7 ميجا بايت.

استخراج المحفوظات المضغوطة

يعد استخراج الأرشيفات التي أنشأناها أسهل من إنشائها. لاستخراج ملف مضغوط ، استخدم بنية الأوامر التالية.

$فك الضغط <اسم الملف>.أزيز <وجهة>

لاستخراج أرشيف zip الذي أنشأناه ، قم بتشغيل هذا الأمر. سيؤدي هذا إلى استخراج جميع المحتويات في نفس الدليل.

$فك الضغطtest.zip

لاستخراج أرشيفات tar و tar.gz و tar.bz2 و tar.xz ، يتعين علينا استخدام ملفات قطران أداة. الأمر tar التالي قابل للتطبيق لاستخراج كل منهم.

$قطران -xvf <أرشيف_الملف>

على سبيل المثال ، لنستخرج جميع الملفات من أرشيف bz2 المضغوط.

$قطران -xvftest.tar.bz2

لفك ضغط ملف gzip (وليس tar.gz) ، قم بتشغيل هذا الأمر.

$gzip <gzip_file>

وبالمثل ، فإن الأمر التالي سيفك ضغط أرشيف bzip2.

$bzip2 <bzip2_file>

تنطبق نفس بنية الأمر على أرشيف xz.

$xz <xz_file>

افكار اخيرة

نأمل أن يكون لديك الآن ما يكفي من المعرفة للتعامل مع مهام الضغط في ظروف مختلفة. اعتمادًا على المتطلبات المحددة ، تقدم جميع طرق الضغط ميزات جذابة للغاية.

شيء مهم يجب ملاحظته هو أن نتيجة الضغط لن تكون هي نفسها طوال الوقت. مع إدخال بيانات مختلف ، سيكون الإخراج مختلفًا. على سبيل المثال ، في بعض الحالات ، يمكن أن تقدم xz نتيجة ضغط مجنونة بينما في هذا المثال ، لم تفعل ذلك. الشيء نفسه ينطبق على طرق أخرى.

لمعرفة المزيد من التفاصيل حول هذه الأدوات ، تحقق من صفحة الدليل الخاصة بكل منها.

$رجل أزيز