ما هو ملف BZ2؟
BZ2 (Bzip2) هي صيغة ضغط ملفات تستخدم خوارزمية Burrows-Wheeler لفرز الكتل مع ترميز هوفمان، طورها جوليان سيوارد عام 1996. تحقق عادة نسب ضغط أفضل بنسبة 10-15% من gzip، مع سرعة ضغط أبطأ بكثير. هذا يجعلها مناسبة لأرشيفات التوزيع الثابتة حيث تُحسب عملية الضغط مرة واحدة فقط، بينما يُنزَّل الملف آلاف المرات.
مثل GZ، تضغط BZ2 ملفاً واحداً فقط؛ ولتحقيق أرشيفات متعددة الملفات تُقترن مع TAR لإنتاج الصيغة الشائعة .tar.bz2. استُخدمت بيز2 على نطاق واسع في توزيع برامج لينكس طوال العقود الأول والثاني من الألفية الثالثة، وإن كانت ضغط XZ قد حلت محلها في كثير من الإصدارات الجديدة.
كيفية فتح ملفات BZ2
- bunzip2 / bzip2 -d (ماك، لينكس) — أداة سطر أوامر مدمجة:
bunzip2 file.bz2 - tar (ماك، لينكس) — استخراج
.tar.bz2مباشرة:tar -xjf archive.tar.bz2 - 7-Zip (ويندوز) — مجاني ومفتوح المصدر، يدعم جميع أنواع BZ2
- WinRAR (ويندوز) — دعم BZ2 مدمج
- The Unarchiver (ماك) — مجاني
- PeaZip (ويندوز، لينكس) — بديل مجاني
المواصفات التقنية
| الخاصية | القيمة |
|---|---|
| الخوارزمية | تحويل Burrows-Wheeler + ترميز هوفمان |
| حجم الكتلة | 100 كيلوبايت – 900 كيلوبايت (قابل للتعديل) |
| ملف واحد | يضغط ملفاً أو تيار بيانات واحداً |
| المجموع الاختباري | CRC-32 لكل كتلة |
| الاقترانات الشائعة | .tar.bz2، .tar.tbz2 |
| بايتات سحرية | 42 5A 68 (أي BZh بـ ASCII) |
الاستخدامات الشائعة
- توزيع البرامج: أرشيفات الشفرة المصدرية لحزم لينكس بصيغة
.tar.bz2 - أرشيفات حزم لينكس: حزم Arch Linux القديمة كانت تستخدم
.pkg.tar.bz2 - الحفظ طويل الأمد: ضغط أفضل يعني حجم تخزين أصغر على المدى البعيد
- علم البيانات: مجموعات بيانات مضغوطة حيث حجم التنزيل أهم من سرعة الاستخراج
مقارنة BZ2 مع GZ و XZ
| الصيغة | الضغط | السرعة | الاستخدام النموذجي |
|---|---|---|---|
| GZ | جيد | سريع | نقل الويب والأنابيب الفورية |
| BZ2 | أفضل | أبطأ | توزيع البرامج |
| XZ | الأفضل | الأبطأ | حزم لينكس الحديثة |
| Zstandard | جيد جداً | سريع جداً | الأنظمة عالية الأداء |
الاستخدام من سطر الأوامر
# ضغط ملف
bzip2 file.sql
# ضغط مع الإبقاء على الأصل
bzip2 -k file.sql
# فك الضغط
bunzip2 file.sql.bz2
# إنشاء أرشيف .tar.bz2
tar -cjf archive.tar.bz2 /path/to/folder/
# استخراج أرشيف .tar.bz2
tar -xjf archive.tar.bz2
# ضغط متوازٍ (أسرع بكثير على المعالجات متعددة النوى)
pbzip2 -p8 largefile.sql
استرداد البيانات التالفة
تعالج BZ2 البيانات في كتل مستقلة بحجم يصل إلى 900 كيلوبايت، وكل كتلة لها مجموعها الاختباري CRC-32 الخاص. هذا يعني أنه في حال تلف جزئي لملف BZ2، يمكن لأداة bzip2recover استخراج الكتل السليمة من الأجزاء غير التالفة — وهو أمر غير ممكن مع GZ ذات التيار الواحد.