نظرة عامة
تستخدم أدوات الضغط وفك الضغط لتقليل حجم الملفات والمجلدات لتوفير مساحة التخزين أو لنقلها بسهولة. في نظام لينكس، هناك عدة أدوات للتعامل مع صيغ الضغط المختلفة. في هذه الوحدة، سنتعرف على الأدوات الشائعة مثل tar، gzip، bzip2، zip، و unzip.
gzip للسرعة، bzip2 للضغط الأفضل، و zip للتوافق مع أنظمة Windows.
أدوات الضغط الشائعة
اختر صيغة الضغط التي تريد تعلمها:
أداة TAR (Tape Archive)
أداة tar تستخدم لتجميع الملفات والمجلدات في أرشيف واحد. يمكن دمجها مع أدوات ضغط أخرى مثل gzip أو bzip2.
| الأمر | الوصف |
|---|---|
tar -cvf archive.tar files/ |
إنشاء أرشيف tar غير مضغوط |
tar -czvf archive.tar.gz files/ |
إنشاء أرشيف مضغوط باستخدام gzip |
tar -cjvf archive.tar.bz2 files/ |
إنشاء أرشيف مضغوط باستخدام bzip2 |
tar -xvf archive.tar |
استخراج أرشيف tar |
tar -xzvf archive.tar.gz |
استخراج أرشيف مضغوط باستخدام gzip |
tar -xjvf archive.tar.bz2 |
استخراج أرشيف مضغوط باستخدام bzip2 |
tar -tf archive.tar |
عرض محتويات الأرشيف دون استخراج |
خيارات TAR الشائعة:
-c: إنشاء أرشيف جديد-x: استخراج الأرشيف-v: عرض verbose (عرض الملفات أثناء المعالجة)-f: تحديد اسم الملف-z: استخدام ضغط gzip-j: استخدام ضغط bzip2-t: عرض محتويات الأرشيف
أمثلة عملية:
# إنشاء أرشيف مضغوط من مجلد
tar -czvf my_project.tar.gz my_project/
# استخراج أرشيف مضغوط
tar -xzvf my_project.tar.gz
# إنشاء أرشيف من عدة ملفات
tar -cvf documents.tar file1.txt file2.txt document.pdf
# عرض محتويات الأرشيف
tar -tf backup.tar.gz
أداة GZIP
أداة gzip تستخدم لضغط الملفات individually. غالباً ما تستخدم مع tar لضغط المجلدات.
| الأمر | الوصف |
|---|---|
gzip file.txt |
ضغط ملف (ينشئ file.txt.gz) |
gzip -c file.txt > file.txt.gz |
ضغط مع الاحتفاظ بالملف الأصلي |
gzip -d file.txt.gz |
فك ضغط ملف |
gunzip file.txt.gz |
فك ضغط ملف (مرادف لـ gzip -d) |
gzip -9 file.txt |
ضغط بأقصى مستوى (أبطأ ولكن ضغط أفضل) |
gzip -1 file.txt |
ضغط بأقل مستوى (أسرع ولكن ضغط أقل) |
أمثلة عملية:
# ضغط ملف مع الاحتفاظ بالأصل
gzip -c large_file.log > large_file.log.gz
# ضغط بأقصى مستوى
gzip -9 large_file.log
# فك ضغط ملف
gzip -d compressed_file.gz
# ضغط عدة ملفات
gzip file1.txt file2.txt file3.txt
أداة BZIP2
أداة bzip2 توفر ضغطاً أفضل من gzip ولكنها أبطأ. غالباً ما تستخدم للملفات الكبيرة.
| الأمر | الوصف |
|---|---|
bzip2 file.txt |
ضغط ملف (ينشئ file.txt.bz2) |
bzip2 -k file.txt |
ضغط مع الاحتفاظ بالملف الأصلي |
bzip2 -d file.txt.bz2 |
فك ضغط ملف |
bunzip2 file.txt.bz2 |
فك ضغط ملف (مرادف لـ bzip2 -d) |
bzip2 -9 file.txt |
ضغط بأقصى مستوى |
أمثلة عملية:
# ضغط ملف مع الاحتفاظ بالأصل
bzip2 -k large_file.log
# فك ضغط ملف
bzip2 -d compressed_file.bz2
# ضغط بأقصى مستوى
bzip2 -9 large_file.log
أدوات ZIP و UNZIP
أدوات zip و unzip تستخدم للتعامل مع صيغة ZIP الشائعة، خاصة للتوافق مع أنظمة Windows.
| الأمر | الوصف |
|---|---|
zip archive.zip file.txt |
إنشاء أرشيف zip من ملف |
zip -r archive.zip folder/ |
إنشاء أرشيف zip من مجلد (بشكل متكرر) |
zip -e archive.zip file.txt |
إنشاء أرشيف zip مشفر بكلمة مرور |
unzip archive.zip |
فك ضغط أرشيف zip |
unzip -l archive.zip |
عرض محتويات الأرشيف دون فك الضغط |
unzip -d path/ archive.zip |
فك الضغط إلى مسار محدد |
unzip -P password archive.zip |
فك ضغط أرشيف محمي بكلمة مرور |
أمثلة عملية:
# إنشاء أرشيف من مجلد
zip -r my_project.zip my_project/
# إنشاء أرشيف مشفر
zip -e secure.zip confidential.txt
# فك ضغط أرشيف
unzip archive.zip
# فك ضغط إلى مجلد محدد
unzip archive.zip -d /path/to/extract/
# عرض محتويات الأرشيف
unzip -l archive.zip
مقارنة بين صيغ الضغط
كل صيغة ضغط لها مزاياها وعيوبها. هذا جدول مقارنة بين الصيغ الشائعة:
| الصيغة | الامتداد | الضغط | السرعة | الاستخدام الشائع |
|---|---|---|---|---|
| GZIP | .gz | جيد | سريع | الاستخدام العام، الملفات المنفردة |
| BZIP2 | .bz2 | ممتاز | بطيء | الملفات الكبيرة، عندما يكون الضغط مهماً |
| ZIP | .zip | جيد | متوسط | التواصل مع أنظمة Windows |
| TAR + GZIP | .tar.gz | جيد | سريع | أرشفة المجلدات في لينكس |
| TAR + BZIP2 | .tar.bz2 | ممتاز | بطيء | أرشفة المجلدات مع ضغط عالي |
تمارين عملية
لتعزيز فهمك لأوامر الضغط وفك الضغط، قم بتنفيذ المهام التالية:
نصائح وإرشادات
-k أو --keep للاحتفاظ بالملف الأصلي.
-P مع unzip في سطور الأوامر حيث يمكن أن تظهر كلمة المرور في سجل الأوامر.
-1) للسرعة، ومستويات عالية (-9) لأفضل ضغط ممكن.
اختبر فهمك
1. ما هو الأمر الصحيح لإنشاء أرشيف مضغوط من مجلد باسم "project" باستخدام ضغط gzip؟
2. كيف يمكنك فك ضغط أرشيف zip إلى مجلد محدد باسم "extracted"?
3. ما هو الفرق بين gzip و bzip2 من حيث الضغط والسرعة؟