المحتوى عن 'compression'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • نصائح وإرشادات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • التجارة الإلكترونية
  • الإدارة والقيادة
  • مقالات ريادة أعمال عامة

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
  • HTML
    • HTML5
  • CSS
  • SQL
  • سي شارب #C
    • منصة Xamarin
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 2 نتائج

  1. تطرّقنا في المقال السّابق إلى أهميّة تحسين الصّور على موقعك، بل والحاجة إلى القيام بذلك. قبل أن نتطرق إلى الخيارات المتوافرة لتجهيز الصور للنشر على الإنترنت، لنتحدث قليلا عن بعض الخطوات التحضيرية البسيطة ذات الأثر الكبير والقادرة على إضافة قيمة فيما يخص التحسينات اللاحقة. تغيير حجم الصورة مسبقا عرفت الكاميرات الرقمية العصرية تقدما كبيرا إلى حد المبالغة في ما يخص بعض الأمور، حيث أن الصور الملتقطة باستعمال هاتف iPhone مثلًا تعتبر كبيرة جدا مقارنة مع ما تحتاجه لووردبريس. تبعا لإعدادات الكاميرا التي تستخدمها يمكن لحجم الصور أن يصل إلى 4912*7360 بكسل بحجم ملف يصل إلى 30 ميغابايت، لذا يعتبر تغيير حجم الصور من أجل الاستخدام على الإنترنت الخطوة الأولى الأساسية في وضع الأمور في نصابها. سوف تحتاج بطبيعة الحال إلى أداة للقيام بذلك، تتوافر العديد من الخيارات التي يمكنك استخدامها. إن لم تكن مستعدا لإنفاق بعض المال فيمكن لكل من Paint بالنسبة لويندوز و Preview بالنسبة للماك القيام بتغيير حجم الصور بشكل ممتاز بكل بساطة وسرعة. إن كنت تبتغي التّحكم بشكل أفضل في الصّور دون أن تدفع مقابل تطبيقات تجارية، فأنصحك باستخدام Gimp الذي يوفر حلا مجانيا للاستخدام على الحواسيب، فهو مُتَعدد المنصات (cross-platform) ومفتوح المصدر. تتوافر أيضا بعض الخيارات للاستخدام عبر الإنترنت فقط مثل Pixlr و Fotoflexer. في فئة الحلول المدفوعة، يقدم كل من Pixelmator للماك و IrfanView للويندوز وظائف شاملة ممتازة بأثمنة في المتناول. يبقى فوتوشوب هو الخيار البديهي، في هذا السياق يأتي إعلان Adobe عن Creative Cloud packages بين حزمة برامجه ليضع أفضل أداة تعديل الصور في متناول القدرة الشرائية لعامة الناس. بغض النظر عن الأداة التي ستستخدمها، عليك بتذكر النقاط التالية دائما أثناء تغيير حجم الصور: العمل على نسخة من الصورة (عوض العمل على الصورة الأصلية ذات الجودة العالية) ما يوفر لك إمكانية التجريب وتغيير رأيك. عليك بالتأكد من الحفاظ على معدل الطول إلى العرض (aspect ratio) الأصلي دون التسبب في أي تشويه (distortion) أثناء تغيير الحجم. تقطيع الحواشي (Cropping Cuts) إلى جانب تغيير حجم الصور الإجمالي، يعتبر تقطيع الحواشي أيضا من بين أهم الخطوات التحضيرية التي يجب عليك القيام بها. يهدف التخلص من هذه الزوائد إلى: الإنقاص من حجم الملف كنتيجة بديهية. جعل الصور أكثر قوة وتعبيرا بصريا. مثال توضيحي لقطع الحواف بشكل جيد إعداد الصور لدعم شاشات Retina قبل المرور إلى ضغط (compressing) الصور، لنتطرق باختصار إلى موضوع تحسين الصور بغرض دعم الأجهزة ذات شاشات من نوع Retina. أضحت شاشات العرض من نوع Retina وبشكل متزايد النموذج المعياري لكل الأجهزة من مختلف الأحجام، كما أن نسبة حركة الزوار الخاصة بها ستعرف ارتفاعا في السنوات القليلة المقبلة. إن لم تكن تريد لمجهودك في تغيير حجم الصور وتقطيع حواشيها أن يضيع سدى وتظهر صورك منقطة ومتقطعة عند العرض على الأجهزة الحديثة عليك بأخذ هذا بعين الاعتبار. تقدم مدونة Jetpack مثالا توضيحيا للفرق بين الصورة إن تم تحسينها وإن لم يتم ذلك: صورة توضيحية للفرق بين بين الصور الداعمة لشاشات retina وتلك غير الداعمة في التطبيق، يتجلى إعداد الصور لدعم شاشات Retina من خلال إنشاء نسختين من الصور: الأولى بالقياسات التي تحتاجها والثانية بضعف تلك القياسات، على سبيل المثال بالنسبة لصورة بصيغة JPEG بحجم 350*350 بكسل يجب أن تنشأ نسخة أخرى منها بحجم 700*700 بكسل. يمكنك التحكم في عرض هذه النسخ من الصور على ووردبريس من خلال استخدام سكربت Retina.js أو بالاعتماد على أحد الملحقين التاليين: WP Retina 2x أو Simple WP Retina واللذان يعتبران أفضل الملحقات للقيام بهذه المهمة. ضغط الصور تعرفنا إلى حد الآن على كيفية تحظير الصور من خلال تغيير قياساتها، قطع حواشيها فضلا عن ملائمتها للعرض على العديد من الأجهزة المختلفة. لننتقل إلى أهم مرحلة في عملية التحسين ألا وهي ضغط الصور. تتجلى عملية الضغط بكل بساطة في الحذف (عبر خوارزميات خاصة) للمعلومات المتواجدة في الصور والتي لا يمكن للعين البشرية التقاطها، يعتبر الضغط خطوة أساسية في التحسين حيث يسمح بخفض حجم ملفات الصور بشكل كبير. من بين الأنواع الثلاثة للصور النقطية التي أشرنا إليها سابقا، تعتبر صيغة JPEGs أفضل الخيارات لعملية الضغط كونها تستخدم مبدأ الضغط الفقود (lossy compression) على عكس صيغ PNGs وGIFs ما يعني احتمالية أكبر للحصول على انخفاض مهم في حجم الملفات. تتجلى نقطة الضعف في ضرورة الفحص الدقيق للنتائج بعد الضغط للتأكد من خلو الصور المضغوطة من التشوهات الصورية (visual artefacts) كما في الصورة أسفله. مثال للتشوهات الصورية التي قد يسببها الضغط أثناء عملية الضغط يجب عليك أن تستهدف أصغر حجم ملفات ممكن بأفضل جودة صورة ممكنة. تجدر الإشارة إلى أن ضغط الصور بصيغ PNGs و GIFs يقلل من حجم ملفاتها أيضا، يتجلى الفرق الوحيد في أن إنقاص حجم الملفات يكون أقل. توضح الصورة التالية المأخوذة من موقع TinyPNG أن المردودية المحصلة من ضغط هذه الصيغ تبقى كبيرة رغم ذلك. الفرق في حجم الملفات الناتج عن ضغط صورة من TinyPNG أدوات ضغط الصور توجد العديد من الخيارات المتوافرة لضغط الصور، إذا كنت تستخدم أحد برامج تعديل الصور التي لا تحتاج اتصال إنترنت التي أشرنا إليها سابقا، يمكنك بكل بساطة التحكم في خصائص الحفظ ( Save-as) المدمجة. هنالك أيضا تطبيقات لا تتطلب اتصال إنترنت مقدمة من كبريات المنصات مخصصة كليا لضغط الصور، أفضل الخيارات في هذا الصدد هي: ImageOptim للاستخدام على الماك أو Trimage للاستخدام على كل من الماك أو الويندوز. مردودية مرتفعة في خفض حجم الملفات باستخدام Kraken.io للاستخدام على الإنترنت يتربع على عرش العديد من الحلول المتوافرة كل من المتنافسين المتصدرين: TinyPNG و Kraken. ملحق WP Smush منذ بدئنا في مشروع WP Smush سنة 2013 عملنا على استثمار الكثير من الجهد والوقت في جعلها أكثر أدوات ووردبريس لتحسين الصور كمالا من ناحية الخصائص المتوافرة. قمنا مؤخرا بوضع WP Smush Pro تحث الاختبار وقارنّا النتائج مع أدوات مدفوعة أخرى لتحسين الصور كانت الخلاصة تصدر كل من Kraken، EWWW وWP Smush. إن كنت تبحث عن ملحق كامل الخصائص يقوم بكل العمل المضني من أجلك وعلى ووردبريس فإننا ننصحك بشدة بتجربة ملحق WP Smush. تحسين الصور من أجل السيو SEO قمنا إلى حد الآن بالتركيز على خاصيات عرض الصور إلا أن التحسين من أجل السيو لا يقل أهمية عن ذلك فيما يخص النجاح الإجمالي لموقعك، لنلق نظرة سريعة على الأساسيات: Filenames (أسماء الملفات): استخدم اسما وصفيا يتضمن الكلمات المفتاحية عوض الأسماء المولدة أوتوماتيكيا والتي لا تحمل معنى، استخدم مثلا: "green-child-bicycle.jpg" عوض "BX8A132E.JPEG". Alt tags (وسوم ALT): أنشئ وسوم ALT موجزة لكل صورة بغرض تحسين الصور ولقابلية وصول أفضل، على سبيل المثال: "alt="Side view of a child’s green bicycle". تحسينات خارج نطاق موقعك لن تقوم كل تحسينات الصور المتاحة بإحداث الكثير من الفرق إن كان موقعك يعاني من عراقيل في الأداء في نواح أخرى، يتطلب التطرق إلى هذا الموضوع الكثير من الوقت، عليك بالبدء بما يلي: أدوات اختبار السرعة: عليك بقياس أداء موقعك باستخدام الأدوات الاعتيادية لاختبار سرعة المواقع. إعداد الخادوم/الاستضافة: قم بتقييم أداء مزود الاستضافة الخاص بك للتأكد من أن الخادوم محسن من أجل مواقع ووردبريس. يمكنك الاستفادة أيضا من فوائد استخدام شبكات توصيل المحتوى (ِContent Delivery Networks) مثل Cloudflare أو Photon الخاص بووردبريس لتتأكد من إيصال صورك بأسرع ما يمكن. وضع برنامج زمني لتحسين الصور بعد إتقان ما تطرقنا له في ما سبق، عليك عليك بإعداد قائمة مهام خاصة بالأمر تعود إليها بشكل متواصل لجعل تحسين الصور عملية روتينية موثّقة ومُدمجة ضمن آلية النّشر لديك، حيث تتمكن أنت أو أي شخص من طاقمك من القيام بها. استخدم العملية المكونة من 6 خطوات التالية مع مراعاة إدخال التغييرات التي تراها مناسبة حسب موقعك: تأكد من تحديد صيغة الصور الصحيحة من أجل تحقيق ما تريده. اعمل على قص حواشي الصور وتغيير حجمها للحصول على تأثير قوي وعلى أصغر حجم ممكن للصورة. توفير صور للعرض على الشاشات العادية وشاشات retina على حد سواء. الاستفادة من ضغط الصور والتحقق بصريا من خلو الصور من أي تشوهات، يمكنك البدء كخطوة أولى باستخدام أداة WP Smush. استثمر بعض الوقت لتحسين كل الصور من أجل السيو للاستفادة من بعض النتائج السهلة فيما يخص حركة مرور الزوار. خذ بعين الاعتبار استخدام CDN من أجل نتائج أفضل. خلاصة نتمنى أن يكون هذا المقال قد ساعدك بتقديم نظرة إجمالية حول موضوع تحسين الصور سواء على موقعك، يجدر بك تضمين تحسين الصّور في آلية النّشر لديك، وذلك لتحسين تصنيفك على محركات البحث، ضمان مداومة الزائر على الاطلاع على محتوى موقعك فضلا عن الرفع من حركة مرور مستخدمي الهواتف المحمولة. لقد اقتصرنا فيما سبق على التقنيات المجربة والتي أتبت فاعليتها، إلا أن الخيارات المتوافرة تتغير بشكل يومي، شاركنا في التعليقات أسفله أي نصائح أو طرق خاصة بك قد تكون مفيدة لمستخدمي ووردبريس الآخرين. ترجمة -وبتصرف- للمقال: The Complete Guide to Mastering Image Optimization for WordPress لصاحبه: TOM EWER.
  2. هناك العديد من الأسباب التي تجعلك ترغب في ضغط Compression الملفّات والمجلدات على الحاسوب، واحدة من أبسط الفوائد التي تجعلك تقوم بذلك هي توفير مساحة التّخزين على القرص واستخدام عرض نطاق bandwidth أقل في اتّصالات الشّبكة. سنناقش في هذا الدّرس بعضًا من الطّرق المختلفة لضغط البيانات وسنتحدّث قليلاً عن بعض تفضيلات الطّرق المختلفة، سنتطرّق أيضًا إلى بعض العمليّات المرتبطة بذلك كالأرشفة archiving، والتي تجعل أدوات الضّغط أكثر مرونة. سنقوم باستعراض هذه الأدوات على نظام تشغيل Ubuntu 14.04 ولكنّها ستعمل تمامًا على أي توزيعة لينِكس حديثة. أساسيّات الضّغط والأرشفةقبل أن نذهب إلى الأدوات الفعلية التي سنستخدمها، يجب أن نُعرِّف مصطلحاتنا ونناقش بعضًا من المُميّزات المختلفة للضّغط والأرشفة. الضّغط هو طريقة لتقليل حجم الملف على القرص باستخدام خوارزميات وطرق حسابية مختلفة، تكون الملفّات مُنسّقة بطريقة معيّنة تجعل بنيتها الأساسية مُتوقَّعة بشكلٍ ما حتّى ولو كان محتواها مختلفاً، بل وأكثر من ذلك فإنّ المحتوى بذاته عادةً ما يكون متكرّرًا، لذلك يتيح لنا كلا هذين الأمرين فرصة لتطبيق تقنيات الضّغط. 1- الضّغط الفَقُود والضّغط غير الفَقُود Lossy and Lossless Compressionعندما نناقش موضوع الضّغط بالنّظر إلى الحواسيب وأنواع الملفّات فقد تحمل المصطلحات نفسها معاني مختلفة بحسب المحتوى، فلنأخذ كمثال ملفات الموسيقى التي تحمل صيغة MP3، حيث أنّ ملف الـ MP3 هو ملف صوتي مضغوط يتمّ استخدامُه لإنشاءِ ملفٍ ذي حجمٍ أصغر وذلك اعتماداً على ملفٍ صوتيٍّ ذي حجمٍ أكبر. يختلف هذا النّوع من الضّغط بشكلٍّ أساسيٍّ عمّا نتحدث عنه في هذا الدّرس لأنّ ملف الـ MP3 يتمُّ إنشاؤه عبر تحليل شكل الموجة الصّوتيّة من ملف الصّوت ومحاولة معرفة أيُّ البيانات يُمكنُ حذفها نهائيًا مع المحافظة على صوت الملف الأصلي. وهذا ما يُدعى طريقة الضّغط الفَقُود lossy compression لأنّه فعلًا فقدَ بيانات من الملف الأصلي، وليس بإمكانك تحويل ملف الـ MP3 مرّة أخرى إلى الملف الأصلي لاحقًا. قد لا يُلاحِظ المستخدم عمليّة الضغط ولكنَّها لا تحتوي كامل البيانات من الملف الأصلي، وكلَّما كان معدّل الضّغط أعلى كلَّما بَدأت أجزاء أكثر من الصّوت تتأثر بعمليّة الضّغط. وكمثال آخر على هذا الصّور ذات الصّيغة JPEG، فكلَّما تمَّ ضغطها بشكلٍ أكبر كلَّما تمّت خسارة المزيد من البيانات وكلَّما اتضحت عمليّة الضّغط أكثر، تُحاول أداة ضغط صيغة JPEG إيجاد الحقولِ ذاتِ الألوان المتقاربة لبعضها وتقومُ باستبدالِ الحقلِ كاملًا بلونٍ واحد، كلَّما زادَ معدَّل الضّغط المستخدم كلَّما زاد مدى الألوان الذي يتم تغطيته بهذه الطريقة. بالمقابل تقوم طريقة الضّغط غير الفَقُود lossless compression بإنشاء ملف ذي حجم أصغر من الأصل والذي يمكننا باستخدامه إعادة بناء الملف الأصلي. الضّغط غير الفَقُود هو نوع الضّغط الذي سنقوم بتغطيته في هذا الدّرس، لا يستخدم هذا النّوع من الضّغط القيم التقريبيّة لضغط البيانات، بل يستخدم بدلاً من ذلك خوارزميّات التّعرّف على الأجزاء المتكرّرة من الملف ويقومُ بإزالتها واستبدالها بماسك المكان placeholder، ويتابع ليستبدل لاحقاً حوادث النّمط بمرجعيّات references لنفس ماسك المكان. يسمح هذا للحاسوب بتخزين المعلومات على مساحة أقلّ من القرص، تُشبه هذه العمليّة كإنشاء قائمة من المتغيّرات variables والتي تُعرِّف تركيبة من البيانات ومن ثمّ استخدام هذه المتغيّرات لاحقًا لإنشاء البرنامج، تستخدم كلّ عمليّة ضغط غير فَقُود هاتين المرحلتين الفعليّتين وهما ربط القيم المتكرّرة إلى شيءٍ ما أصغر، والذي يمكن الرّجوع له بسهولة، ومن ثمّ تبديل الأحداث لكل واحدة من هذه القيم بمرجع لها. بل وأكثر من ذلك يُقال عن طرق الضّغط غير الفَقُود أنّها قابلة للتكيّف، هذا يعني أنّها لا تقوم بتحليل كامل الملف في البداية ومن ثمّ تقوم بإنشاء قاموس من البدائل المرجعيّة منه، بل تقوم بدلاً من ذلك بتحليل الملف أثناء عمليّة الضّغط ومن ثم تعيد كتابة القاموس بناءً على البيانات التي تمّ فعلياً تكرارُها، ويُصبح القاموس تدريجيًا أكثر فائدة مع استمرار العمليّة. 2- خلفيّة عن الأرشفةتعني فكرة أرشفة البيانات بشكلٍ عام عمل نسخة احتياطيّة لها وحفظها إلى مكان آمن، عادةً في صيغة مضغوطة، يحمل الأرشيف بشكل عام معنى مختلف قليلاً على نظام لينِكس، حيث عادة ما يشير إلى ملف ذو صيغة tar. تاريخيًّا كان يتمّ النّسخ الاحتياطي للبيانات على شرائط أرشفة tape archives، والتي هي عبارة عن أجهزة أشرطة ممغنطة يُمكِن استخدامها لتخزين البيانات المتتابعة، لا زالت هذه الطريقة هي المفضّلة لدى بعض المجالات، ولكي يتم عمل هذا بشكلٍ فاعل تمّ إنشاء برنامج tar حتى تستطيع التعامل مع العديد من الملفّات في نظام الملفّات بأذونات permissions وبيانات وصفية metadata سليمة كملف واحد، ومن ثم تستطيع استخراج الملف أو كامل نظام الملفّات من الأرشيف. الملف ذو اللاحقة tar بشكل أساسي هو عبارة عن صيغة ملف تقوم بإنشاء طريقة ملائمة لتوزيع وتخزين والنسخ الاحتياطي والتّعامل بمجموعة من الملفّات المرتبطة، سنقوم أيضًا في هذا الدّرس بالتحدث عن الأرشفة لأنه عادة يتم ضغط الملفّات المُؤرشفة خلال عملية الأرشفة وذلك لكي يتم تخزين البيانات بطريقة أكثر فاعلية. المقارنة بين أدوات الأرشفة المختلفةيملك لينِكس العديد من أدوات الأرشفة المختلفة، حيث يُقدّم كلًّا منها تضحيات في بعض المجالات ويملك بعضًّا من مواطن القوة، سنقوم بالميل تجاه مخطّطات الضّغط التي تعمل بالصّيغة tar لأنها أكثر مرونة من الطّرق الأخرى. 1- الضّغط بأداة gzipتمّ تصنيف أداة gzip بشكل نمطي على أنّها الطّريقة الكلاسيكية لضغط البيانات على آلة تعمل بنظام التشغيل لينِكس، فهي موجودة تقريباً منذ العام 1992م وهي لا تزال قيد التطوير ولا يزال لديها الكثير من الأمور لتسير عليها. تستخدم أداة gzip خوارزمية ضغط معروفة بـ DEFLATE، وهي خوارزمية مستخدمة أيضًا في تقنيات شائعة أخرى مثل صيغة الصورة PNG وبروتوكول الوِيب HTTP وبروتوكول القشرة الآمنة SSH secure shell protocol. إنّ السّرعة هي واحدة من أهمّ مزايا هذه الأداة، حيث يُمكن ضغط وفك ضغط البيانات بمعدّل أعلى مقارنةً بتقنيّات منافسة، خاصةً عند مقارنة معظم الصيغ المدمجة لكل أداة، وهي أيضًا أكثر فاعليّة من حيث الموارد resources بالنظر إلى استخدام الذاكرة memory usage خلال الضّغط وفك الضّغط ولا يبدو أنّها تتطلب ذاكرة أكثر عند التطلع إلى عملية الضّغط الأفضل. ونأخذ التوافقية compatibility أيضًا بعين الاعتبار، فحيث أنّ gzip هي أداة قديمة فإنّ معظم أنظمة تشغيل لينِكس بغض النظر عن عمرها ستملك الأداة لكي تتعامل مع البيانات. إنّ أكبر مساوئ هذه الأداة أنّها تضغط البيانات بشكل غير مكتمل تماماً بالمقارنة مع بعض الخيارات الأخرى، لذلك إن كنت تقوم بالكثير من عمليّات الضّغط وفك الضّغط السّريعة فإنّ هذه الصّيغة هي ملائمة بالنسبة لك، ولكن إن كنت تُخطّط لضغط الملف مرّة واحدة ومن ثمّ تخزينه حينها ستجد أنّ الخيارات الأخرى تملك مزايا أكثر. عادةً يتمّ تخزين ملفات gzip باستخدام اللاحقة .gz، تستطيع ضغط الملفّات باستخدام gzip بكتابة الأمر التالي: gzip sourcefileسيقوم هذا الأمر بضغط الملف وتغيير اسمه إلى "sourcefile.gz "على جهازك. إن كنت ترغب بضغط المجلد كاملاً عندها تستطيع تمرير العَلَم –r داخل الأمر كما يلي: gzip -r directory1سيقوم هذا الأمر بالتحرك داخل المجلد وضغط كل ملف على حدا، وهو عادةً شيء غير مفضل ويمكن الحصول على نتيجة أفضل بأرشفة المجلد ومن ثم ضغط الملف الناتج ككل، والتي سنقوم بشرح كيفية عملها قريباً. لإيجاد المزيد من المعلومات حول الملف المضغوط تستطيع تستطيع استخدام العَلَم –l والذي سيقوم بإعطائك بعض الإحصائيات: gzip -l test.gz compressed uncompressed ratio uncompressed_name 5133 14073 63.7% test إذا كنت ترغب بتمرير النّتيجة إلى أداة أخرى بإمكانك إخبار gzip أن يرسل الملف المضغوط إلى مخرج معياري باستخدامك العَلَم –c، سنقوم في هذا المثال ببساطة بتمريره مباشرة إلى ملف آخر: gzip -c test > test.gzبإمكانك ضبط إعدادات الضّغط الأمثل بتمرير علم على شكل رقم في المجال بين الـ 1 والـ 9، العَلَم -1 (يملك Alias المُسمّاة --fast) يُمثّل الطّريقة الأسرع ولكن الأقل تَعمُّقًا في الضّغط، أمّا العَلَم -9 (والـ alias الخاص به هو --best) يمثل الطريقة الأبطأ والأكثر تعمّقًا في الضّغط، إن الخيار الافتراضي هو -6 والذي يشكل أساس متوسط جيد. gzip -9 compressmeلكي تقوم بفك ضغط ملف ببساطة تمرّر العَلَم –d إلى الأمر gzip (يوجد أيضاً عدّة alias مثل gunzip ولكنها تقوم بنفس الفعل): gzip -d test.gz 2- الضّغط بأداة bzip2Bzip2 هي صيغة وأداة شائعة أخرى للضغط، وفي حين أنّها إلى حدٍّ ما أحدث من gzip، حيث تم تقديمها لأول مرة في عام 1996م، إلا أنه تم تنفيذ bzip2 بشكل واسع لتكون البديل التقليدي لـ gzip. بينما يعتمد gzip على خوارزمية "DEFLATE" فإنّ bzip2 هو تنفيذ لخوارزمية تدعى "Burrows-Wheeler algorithm"، ينتج عن هذا الاختلاف في المنهجية مجموعة من نقاط القوة والضعف والتي هي مختلفة تمامًا عن gzip، إنّ أهم شيء يجعل المستخدم يتنازل عن بعض الميزات للحصول على ميزات أخرى هي معدّل الضّغط العالي مقابل وقت أطول لعملية الضّغط، تستطيع أداة bzip2 إنشاء ملفات مدمجة بشكل كبير أكثر من gzip ولكنّها تأخذ وقتًا أطول لتحقيق هذه النتائج نظرًا لوجود خوارزمية أكثر تعقيدًا. لحسن الحظ فإنّ وقت فك الضّغط لا يتأثر بشكل كبير كوقت الضّغط، لذلك ربما يكون من المفيد توزيع الملفّات باستخدام صيغة bzip2 حيث أنّك فقط ستعاني خلال وقت عملية ضغطه وسيكون بإمكانك توزيع ملفات ذات حجم أصغر والتي يمكن فك ضغطها خلال وقت معقول، طبعاً لا يزال وقت فك الضّغط أطول بكثير من صيغة gzip ولكن ليس له تأثير كبير على عملية الضّغط. لا بدّ أيضًا أن نبقي في ذهننا أنّ استهلاك الذاكرة أكبر من gzip، لن يؤثر هذا على معظم الأجهزة ولكن على بعض الأجهزة الصغيرة المدمجة ممكن أن يؤثر هذا على خياراتك، بإمكانك أن تختار تمرير العَلَم –s والذي سينقص حجم الذاكرة المطلوبة تقريبًا إلى النصف، ولكن سيقودك هذا أيضًا إلى معدّل ضغط أقل. يتم إعطاء الملفّات المضغوطة بهذه الآلية لاحقة الملفّات .bz2 بشكل عام. لكي تقوم بإنشاء ملف مضغوط باستخدام bzip2 بإمكانك ببساطة كتابة ما يلي: bzip2 afileسيقوم هذا الأمر بضغط الملف وإعطائه الاسم "afile.bz2". وكما ذكرنا سابقًا تستطيع تمرير العَلَم –s للدلالة على أن الأداة المساعدة يجب أن تعمل في وضع الذاكرة المُخَفَضّة ، لن يقوم هذا بالضّغط بشكل جيد ولكنّه لن يتطلب الكثير من الموارد: bzip2 -s afileبينما تقوم bzip2 بتطبيق الأعلام المرقمة numbered flags إلّا أنها تعني شيئًا مختلفًا عمّا تعنيه في gzip، حيث تمثّل الأعلام المرقّمة هنا حجم الكتلة block size التي تنفّذ الأداة المساعدة ضغطها ، لذلك يعدّ هذا كوسيلة قياس للذاكرة المستخدمة مقابل حجم الملف المضغوط أكثر منه الوقت مقابل حجم الملف المضغوط، إنّ السلوك الافتراضي هو العَلَم -9 والذي يعني استخدامًا أعلى للذاكرة (نسبيًا) مع معدّل ضغط أعلى: bzip2 -1 fileلنتمكن من فك ضغط ملف مضغوط باستخدام bzip2 نقوم بتمرير العَلَم –d كما يلي: bzip2 -d file.bz2سيعطينا هذا ملفًا غير مضغوط اسمه "file". 3- الضّغط باستخدام xzآلية الضّغط باستخدام xz هي الوافد الجديد نسبيًا على الساحة ، تمّ إطلاق هذه الأداة لأول مرة عام 2009م واكتسبت متابعة بشكل ثابت منذ ذلك الحين. تستفيد أدوات الضّغط باستخدام xz من خوارزمية الضّغط المعروفة باسم "LZMA2" ، تمتلك هذه الخوارزمية معّدل ضغط عالٍ أكثر من المثالين السابقين ، والذي يجعل منها صيغة جيدة عندما تحتاج إلى تخزين البيانات على مساحة محدودة من القرص حيث تقوم بإنشاء ملفات أصغر حجمًا. طبعًا يأتي هنا موضوع التكلفة مرة أخرى في معظم نفس المجالات التي تعاني منها bzip2 ، فبينما يكون الملف الذي تنتجه طريقة xz أصغر حجمًا من الأدوات الأخرى إلّا أنّها تأخذ بشكل كبير وقتًا أطول للقيام بالضّغط ، فعلى سبيل المثال عندما نستخدم أعلام الضّغط بمعدّل عالٍ على ملف ذو حجم كبير فإنّ gzip يحتاج تقريبًا حوالي نصف دقيقة ، وbzip2 يحتاج تقريبًا حوالي دقيقة ، أمّا xz ربما تحتاج حوالي 4 أو 5 دقائق. تتلقى أدوات الضّغط باستخدام xz ضربة أيضًا في متطلبات الذاكرة التي تحتاجها ، تصل أحيانًا إلى حجم أكثر من الطرق الأخرى ، ربّما لا تكون هذه مشكلة بالنسبة لك إن كنت على نظام يملك ذاكرة وافرة ، ولكن يجب أن تأخذ هذا الموضوع بعين الاعتبار. بينما يكون وقت الضّغط أطول من المرغوب به ، فإنّ وقت فكّ الضّغط جيّد نسبيًا رغم أنّه لا يقارب gzip بالنظر إلى سرعة فك الضّغط ولكنّه أسرع عادة وبشكل كبير بفك الضّغط من bzip2 ، كما أنّ استهلاك الذاكرة لفك الضّغط ليس هائلًا أيضًا (ولكنّه يبقى مرتفعًا نسبيًا). تجعل هذه المجموعة من المزايا والعيوب من هذه الصّيغة صيغةً جيدةً لتوزيع الملفّات كالبرامج ، سيتوجب عليك مقدمًا أن تعاني في عملية ضغط هذه الملفّات ولكنّ مستهلكي البرامج سيستفيدون كثيرّا ، حيث أنّهم سيملكون ملفاً مدمجاً يتمّ فك ضغطه بسرعة. ومن العيوب غير الملاحظة أيضًا لهذه الصّيغة أنّها ربّما ليست مدعومة على الأنظمة الأقدم نظرًا لحداثة عهدها ، فإن كنت تبحث عن التوافقية العظمى ربّما ستكون مجبرًا بأن تنظر إلى أداة أخرى. تأخذ الملفّات المنشأة بهذه الصّيغة اللاحقة .xz بشكل عام. لكي تقوم بضغط ملف قم باستدعاء الأداة ببساطة من دون أيّة وسائط : xz fileسيقوم هذا الأمر بمعالجة الملف وإنتاج ملف يدعى "file.xz". لكي تعرض إحصائيات statistics عن عمليّة ضغط الملف تستطيع تمرير العَلَم –l على الملف المضغوط كما يلي: xz -l test.xz Strms Blocks Compressed Uncompressed Ratio Check Filename 1 1 5,016 B 13.7 KiB 0.356 CRC64 test.xzإن أردت إرسال خَرْج output عمليّة الضّغط إلى الخَرْج المعياري standard out فبإمكانك الإشارة إلى الأداة المساعدة بذلك عن طريق العَلَم –c، هنا في هذا المثال نستطيع إرسالها مرة أخرى مباشرة إلى ملف: xz -c test > test.xzبالنسبة للأعلام المرقّمة فإنّ xz تستخدم الأرقام الأقل لكي تشير إلى عملية ضغط أسرع، وهي تملك في الواقع العَلَم -0 كالخيار الأسرع، العَلَم -6 هو الافتراضي ويشكل أرضيّة جيدة لأغلب الحالات، أمّا إن كنت ترغب بتوجيه الضّغط إلى الملفّات الأكبر حجمًا تستطيع استخدام أعلامًا ذات أرقام أعلى والتي قد تأخذ وقتًا طويلًا جدًا ولكنّها ستظهر بعض المكاسب. وإن كنت ترغب بمعدّل ضغط أعلى ولا يهمك الوقت أو متطلبات الذاكرة إلخ..، فتستطيع استخدام العَلَم –e والذي يستخدم عملية ضغط بديلة مختلفة وشديدة الفاعلية، يمكن تعديل أداء هذا العَلَم أيضًا باستخدام الأعلام الرقمية معه : xz -e -9 large_fileستستغرق هذه العملية في النهاية وقتًا طويلًا وربّما لن تُقدّم فوائد كبيرة ولكن إن احتجت إلى هذه الوظيفة فالخيار متاح أمامك. لكي تقوم بفك الضّغط عن الملفّات مرّر العَلَم –d مرة ثانية: xz -d large_file.xzسيقوم هذا الأمر بفك ضغط البيانات إلى ملف يدعى "large_file". استخدام أرشفة Tar مع الضّغطفي حين أن أساليب الضّغط الفردية مفيدة بحدّ ذاتها إلّا أنّك في أغلب الأحيان ستجدهم مقترنين مع الصّيغة tar لضغط أرشفة الملفّات، يسمح لنا هذا بالحفاظ على بُنى المجلدات والأذونات إلخ..، للملفات التي نقوم بحزمها. إنّ الأمر tar حريص جدًا وفعليًا على هذه العلاقة، فهو يُضَّمّن أعلام في سطر الأوامر يُمكن استخدامها لاستدعاء أدوات الضّغط المرافقة تلقائيًا بعد أن تتم عمليّة الأرشفة، وكلّ ذلك في خطوة واحدة. 1- استخدام tar مع الصّيغة gzipلإنشاء أرشيف tar والذي يتم ضغطه بأداة gzip تستطيع تمرير العَلَم –z، يشير هذا العَلَم إلى أنّك ترغب باستخدام ضغط بصيغة gzip على الملف المؤرشف، لا تتطلب أعلام tar فعليًا البادئة "-" كما في معظم الأدوات الأخرى، ومن الأساليب الشائعة لإنشاء ملفات مضغوطة مؤرشفة هذا المثال: tar czvf compressed.tar.gz directory1سيقوم هذا الأمر بإنشاء أرشيف (باستخدام العَلَم –c) من المجلد الذي يُدعى "directory1"، حيثُ يُنشئ خَرْجًا مُطوّلًا ويضغط الأرشيف الناتج باستخدام gzip ومن ثُمّ يُعطي الناتج إلى ملف يُدعى "compressed.tar.gz" (وهو ملف tar تم ضغطه). حالما يتم إنشاء الملف نستطيع إلقاء نظرة على محتوياته باستخدام العَلَم –t بدلًا من علم الإنشاء (-c) : tar tzvf compressed.tar.gz drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory1/ -rw-r--r-- demouser/demouser 5458 2014-03-19 18:31 directory1/httpd.conf.orig -rw-r--r-- demouser/demouser 2295 2014-03-19 18:31 directory1/nginx.conf.orig -rw-r--r-- demouser/demouser 5458 2014-03-19 18:21 directory1/httpd.confوللقيام بفك ضغط الملف لاحقًا وتوسيع الأرشيف تستطيع استخدام العَلَم –x كما يلي: tar xzvf compressed.tar.gzسيعيد هذا الأمر إنشاء بنية المجلّد في المجلّد الحالي. 2- استخدام tar مع bzip2لاستخدام الأرشفة مع bzip2 قُم باستبدال العَلَم –z (والذي هو خاص بالأمر gzip) بالعَلَم –j، هذا يعني أنّ أمر إنشاء الأرشيف المضغوط سيتم تعديله إلى التالي: tar cjvf bzipcompressed.tar.bz2 directory2مرةً أخرى تستطيع النظر إلى الملفّات المُحتواة في الأرشيف بتمرير العَلَم –t : tar tjvf bzipcompressed.tar.bz2 drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory2/ -rw-r--r-- demouser/demouser 5458 2014-03-19 18:31 directory2/httpd.conf.orig -rw-r--r-- demouser/demouser 2295 2014-03-19 18:31 directory2/nginx.conf.orig -rw-r--r-- demouser/demouser 5458 2014-03-19 18:21 directory2/httpd.confتستطيع استخراج الملفّات وبنية المجلد إلى المجلد الحالي بكتابة ما يلي: tar xjvf bzipcompressed.tar.bz23- استخدام tar مع xzأضافت الإصدارات الحديثة من الأداة tar وظيفة مشابهة للضغط باستخدام xz، نستطيع القيام بذلك باستخدام العَلَم –J : tar cJvf xzcompressed.tar.xz directory3ولعرض المعلومات نستخدم نفس الآلية: tar tJvf xzcompressed.tar.xz drwxr-xr-x demouser/demouser 0 2014-03-19 18:31 directory3/ -rw-r--r-- demouser/demouser 5458 2014-03-19 18:31 directory3/httpd.conf.orig -rw-r--r-- demouser/demouser 2295 2014-03-19 18:31 directory3/nginx.conf.orig -rw-r--r-- demouser/demouser 5458 2014-03-19 18:21 directory3/httpd.confنتّبع نفس الأساليب للاستخراج : tar xJvf xzcompressed.tar.xzسيعطيك هذا الأمر بنية المجلد الكامل الخاص بك سليمة كما هي. الخاتمةآمل أنّك تملك الآن معلومات كافية لتتخذ قرارًا مستنيرًا بشأن أي وسيلة ضغط يجب أن تُفضّل في ظروفٍ مختلفة، تمتلك كل مخططات الضّغط التي ناقشناها في هذا المقال نقاط قوة جذّابة اعتمادًا على المتطلبات المحدّدة لحالتك. من الهام الانتباه إلى عيوب الأداء ومشاكل التّوافقيّة التي قد تلازم كلّ واحد من هذه الحلول، يعتمد مدى اهتمامك بهذه المخاوف كلياً على الحواسيب التي تعمل عليها وأيّ نوع من الزبائن يجب أن تدعم، لا يجب أن تعير أغلبية الحواسيب الحديثة اهتمامًا كثيرًا إلى هذه التفاصيل، ولكنّها قد تسبب مشاكل إذا قمت بتطبيق أنواع الضّغط بشكل عشوائي عند التعامل مع حواسيب أقدم. ترجمة -وبتصرّف- للمقال An Introduction to File Compression Tools on Linux Servers لصاحبه Justin Ellingwood.