كيفية ضغط أو فك ضغط الملفات من محطة طرفية Linux

النقاط الرئيسية

  • تُستخدم ملفات ZIP على نطاق واسع على أنظمة Windows وmacOS وLinux، مما يجعلها الشكل الأكثر شيوعًا للأرشيف المضغوط.
  • لضغط الملفات (أو المجلدات) على Linux، قم بتشغيل:
    zip اسم الملف zipname الملفات المراد ضغطها
  • لاستخراج الملفات من ملف ZIP، قم بتشغيل:
    فك ضغط اسم الملف المضغوط



ملفات ZIP عبارة عن أرشيف عالمي يستخدم بشكل شائع في أنظمة Windows وmacOS وحتى Linux. يمكنك إنشاء أرشيف مضغوط أو فك ضغط الملفات منه باستخدام بعض أوامر محطة طرفية Linux الشائعة.


تنسيق ملف الأرشيف المضغوط ZIP

بفضل هيمنة تنسيق ZIP في عالم Windows، ربما تكون ملفات ZIP هي الشكل الأكثر شيوعًا للأرشيف المضغوط في العالم.

على الرغم من أن ملفات .tar.gz وtar.bz2 شائعة الاستخدام على Linux، فمن المحتمل أن يرسل إليك مستخدمو Windows أرشيفًا بتنسيق ZIP. وإذا كنت ترغب في أرشفة بعض الملفات وإرسالها إلى مستخدم Windows، فسيكون تنسيق ZIP هو الحل الأسهل والأكثر توافقًا للجميع.

الضغط وفك الضغط والأدوات المساعدة الأخرى

ربما تعلم بالفعل أن أنظمة التشغيل Linux وأنظمة التشغيل الشبيهة بـUnix مثل macOS تحتوي على أدوات تسمح لك بإنشاء ملفات ZIP واستخراج الملفات منها، والتي تسمى zip و unzipولكن هناك عائلة كاملة من الأدوات ذات الصلة مثل zipcloak, zipdetails, zipsplit ، و zipinfo.


لقد قمنا بفحص بعض توزيعات لينكس لمعرفة ما إذا كانت تتضمن هذه الأدوات المساعدة في التثبيت القياسي. كانت جميع الأدوات المساعدة موجودة في Ubuntu 23.04 و19.04 و18.10 و18.04. وكانت موجودة أيضًا في Manjaro 18.04. تضمنت Fedora 29 zip و unzip، ولكن لا يوجد أي من الأدوات المساعدة الأخرى، وكانت هذه هي الحال أيضًا بالنسبة لـ CentOS.

لتثبيت العناصر المفقودة على Fedora 29، استخدم الأمر التالي:

sudo dnf install perl-IO-Compress

أمر تثبيت zip لـ Fedora

لتثبيت العناصر المفقودة على CentOS 7، استخدم الأمر التالي:

sudo yum install perl-IO-Compress

أمر تثبيت Zip في Centos


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

كيفية إنشاء ملف ZIP باستخدام الأمر zip

لإنشاء ملف ZIP، تحتاج إلى إخبار zip اسم ملف الأرشيف والملفات التي يجب تضمينها فيه. لست بحاجة إلى إضافة امتداد “.zip” إلى اسم الأرشيف، ولكن لا ضرر من ذلك إذا فعلت ذلك.

لإنشاء ملف يسمى source_code.zip تحتوي على جميع ملفات التعليمات البرمجية المصدرية C وملفات الرأس في الدليل الحالي، يمكنك استخدام هذا الأمر:

zip source_code *.c *.h

أمر zip في نافذة المحطة الطرفية

يتم إدراج كل ملف عند إضافته. ويظهر اسم الملف ومقدار الضغط الذي تم تحقيقه على هذا الملف.


الإخراج من أمر zip في نافذة المحطة الطرفية

إذا نظرت إلى أرشيف ZIP الجديد، يمكنك أن ترى أن امتداد الملف “.zip” قد تمت إضافته تلقائيًا بواسطة zip.

ls -l source_code.zip

ls على أرشيف zip في نافذة المحطة الطرفية

إذا كنت لا تريد رؤية الناتج من zip عند إنشاء ملف ZIP، استخدم -q خيار (هادئ).

zip -q source_code *.c *.h

-q خيار quiet في نافذة المحطة الطرفية


تضمين الدلائل في ملفات ZIP

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

zip -r -q source_code archive/ *.c *.h

-r خيار متكرر في نافذة المحطة الطرفية

من باب مراعاة الشخص الذي سيقوم باستخراج الملفات من ملف ZIP الذي تقوم بإنشائه، فمن المهذب غالبًا إنشاء ملفات ZIP مع تضمين الملفات الموجودة بداخلها في دليل. عندما يقوم الشخص الذي يتلقى ملف ZIP باستخراجه، يتم وضع جميع الملفات بشكل منظم داخل دليل على جهاز الكمبيوتر الخاص به.


في الأمر التالي، سنقوم بأرشفة work الدليل وجميع الدلائل الفرعية. لاحظ أن هذا الأمر يتم إصداره من الدليل الرئيسي للملف work مجلد.

zip -r -q source_code work/

ضغط دليل العمل في نافذة المحطة الطرفية

ضبط مستوى الضغط

يمكنك تحديد مقدار الضغط المطبق على الملفات عند إضافتها إلى أرشيف ZIP. يتراوح النطاق من 0 إلى 9، حيث يشير الرقم 0 إلى عدم وجود ضغط على الإطلاق. وكلما زاد الضغط، كلما استغرق إنشاء ملف ZIP وقتًا أطول. بالنسبة لملفات ZIP ذات الحجم المتواضع، لا يشكل فارق الوقت عقوبة كبيرة. ولكن بالنسبة لملفات ZIP ذات الحجم المتواضع، ربما يكون الضغط الافتراضي (المستوى 6) جيدًا بما يكفي على أي حال.

للحصول على zip لاستخدام مستوى معين من الضغط، مرر الرقم كخيار على سطر الأوامر، مع “-“، مثل هذا:


zip -0 -r -q source_code work/

خيار الضغط -0 في نافذة المحطة الطرفية

مستوى الضغط الافتراضي هو 6. ليست هناك حاجة لتوفير -6 الخيار، ولكن لن يسبب أي ضرر إذا قمت بذلك.

zip -r -q source_code work/

ضغط المستوى 6 في نافذة المحطة الطرفية

الحد الأقصى لمستوى الضغط هو المستوى 9.

zip -9 -r -q source_code work/

-9 ضغط في نافذة المحطة الطرفية


مع تحديد الملفات والدلائل التي يتم أرشفتها هنا، فإن الفارق بين عدم الضغط (المستوى 0) والضغط الافتراضي (المستوى 6) هو 400 كيلو بايت. والفارق بين الضغط الافتراضي وأعلى مستوى للضغط (المستوى 9) هو 4 كيلو بايت فقط.

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

إضافة كلمات مرور إلى ملفات ZIP

إن إضافة كلمات مرور إلى ملفات ZIP أمر سهل. استخدم -e قم باختيار خيار (تشفير) وسيُطلب منك إدخال كلمة المرور الخاصة بك وإعادة إدخالها للتحقق.

zip -e -r -q source_code work/

أمر zip في نافذة المحطة الطرفية


كيفية فك ضغط ملف ZIP باستخدام الأمر unzip

لاستخراج الملفات من ملف ZIP، استخدم الأمر unzip، ثم أدخل اسم ملف ZIP. لاحظ أنك تحتاج إلى إدخال الامتداد “.zip”.

unzip source_code.zip

أمر zip في نافذة المحطة الطرفية

عندما يتم استخراج الملفات، سيتم إدراجها في نافذة المحطة الطرفية.

أمر zip في نافذة المحطة الطرفية

لا تحمل ملفات ZIP تفاصيل ملكية الملف. يتم تعيين المالك لكل الملفات المستخرجة للمستخدم الذي يقوم باستخراجها.


تماما مثل zip, unzip لديه -q خيار (هادئ)، بحيث لا تحتاج إلى رؤية قائمة الملفات أثناء استخراج الملفات.

unzip -q source_code.zip

أمر zip في نافذة المحطة الطرفية

لاستخراج الملفات في دليل معين، استخدم -d خيار (الدليل)، وقم بتوفير المسار إلى الدليل الذي ترغب في استخراج الأرشيف إليه.

unzip -q source_code.zip -d ./development

أمر zip في نافذة المحطة الطرفية

إذا تم إنشاء ملف ZIP بكلمة مرور، unzip سيطلب منك كلمة المرور. إذا لم تقدم كلمة المرور الصحيحة، unzip لن يتم استخراج الملفات.


unzip -q source_code.zip

أمر zip في نافذة المحطة الطرفية

إذا كنت لا تهتم برؤية الآخرين لكلمة مرورك أو تخزينها في سجل الأوامر الخاص بك، فيمكنك تقديم كلمة المرور على سطر الأوامر باستخدام -P خيار (كلمة المرور). (يجب استخدام حرف “P” كبير.)

unzip -P fifty.treacle.cutlass -q source_code.zip

أمر zip في نافذة المحطة الطرفية

استبعاد الملفات

إذا كنت لا تريد استخراج ملف معين أو مجموعة من الملفات، استخدم -x خيار (استبعاد). في هذا المثال، نريد استخراج كافة الملفات باستثناء تلك التي تنتهي بامتداد “.h”.


unzip -q source_code.zip -x *.h

أمر zip في نافذة المحطة الطرفية

الكتابة فوق الملفات

افترض أنك قمت باستخراج أرشيف ولكنك قمت بحذف بعض الملفات المستخرجة عن طريق الخطأ.

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

بصرف النظر عن r (إعادة تسمية) الاستجابة، هذه الاستجابات حساسة لحالة الأحرف.

  • ي: نعم، قم باستبدال هذا الملف
  • ن: لا، لا تقم باستبدال هذا الملف
  • أ: الكل، الكتابة فوق كافة الملفات
  • ن: لا شيء، لا تستبدل أيًا من الملفات
  • ر: أعد تسمية هذا الملف، ثم استخرجه، لكن أعطه اسمًا جديدًا. سيُطلب منك إدخال اسم جديد.


الإخراج من أمر zip في نافذة المحطة الطرفية

لإجبار unzip لاستبدال أي ملفات موجودة استخدم -o خيار (الكتابة فوق).

unzip -o -q source_code.zip

الإخراج من أمر zip في نافذة المحطة الطرفية

الطريقة الأكثر فعالية لاستبدال الملفات المفقودة هي أن يكون لديك unzip استخرج فقط أي ملفات في الأرشيف غير الموجودة في الدليل المستهدف. للقيام بذلك، استخدم -n (الخيار (لا يمكن الكتابة فوقه أبدًا)).

unzip -n source_code.zip


الإخراج من أمر zip في نافذة المحطة الطرفية

النظر داخل ملف ZIP

غالبًا ما يكون من المفيد والمفيد رؤية قائمة بالملفات الموجودة داخل ملف ZIP قبل استخراجه. يمكنك القيام بذلك باستخدام -l خيار (أرشيف القائمة). يتم توصيله عبر less لجعل الناتج قابلا للإدارة.

unzip -l source_code.zip | less

الإخراج من أمر zip في نافذة المحطة الطرفية

يعرض الإخراج الدلائل والملفات الموجودة داخل ملف ZIP وطولها والوقت والتاريخ اللذين تم إضافتهما إلى الأرشيف. اضغط على “q” للخروج من less.


الإخراج من أمر zip في نافذة المحطة الطرفية

هناك طرق أخرى لإلقاء نظرة داخل ملف ZIP والتي تعطي أنواعًا مختلفة من المعلومات، كما سنرى.

إضافة كلمة مرور باستخدام الأمر zipcloak

إذا قمت بإنشاء ملف ZIP ولكنك نسيت إضافة كلمة مرور، فماذا يمكنك أن تفعل؟ يمكنك إضافة كلمة مرور بسرعة إلى ملف ZIP باستخدام zipcloak الأمر. مرر اسم ملف ZIP على سطر الأوامر. سيُطلب منك إدخال كلمة مرور. يجب عليك التحقق من كلمة المرور عن طريق إدخالها مرة ثانية.

zipcloak source_code.zip

الإخراج من أمر zip في نافذة المحطة الطرفية


عرض تفاصيل الملف باستخدام الأمر zipdetails

ال zipdetails سيعرض لك الأمر الكثير من المعلومات المتعلقة بملف ZIP. الطريقة المعقولة الوحيدة للتعامل مع كمية الإخراج التي يمكن أن يقدمها هذا الأمر هي توجيهه عبر less .

zipdetails source_code.zip | less

الإخراج من أمر zip في نافذة المحطة الطرفية

لاحظ أن المعلومات ستتضمن أسماء الملفات حتى لو كان ملف ZIP محميًا بكلمة مرور. يتم تخزين هذا النوع من المعلومات داخل ملف ZIP كبيانات تعريفية ولا يشكل جزءًا من البيانات المشفرة.

الإخراج من أمر zip في نافذة المحطة الطرفية


البحث داخل الملف باستخدام الأمر zipgrep

ال zipgrep يسمح لك الأمر بالبحث داخل الملفات الموجودة في ملف ZIP. في المثال التالي، نريد معرفة الملفات الموجودة داخل ملف ZIP والتي تحتوي على النص “keyval.h”.

zipgrep keyval.h source_code.zip

الإخراج من أمر zip في نافذة المحطة الطرفية

يمكننا أن نرى أن الملفات slang.c و getval.c تحتوي على السلسلة “keyval.h”. يمكننا أيضًا أن نرى أن هناك نسختين من كل من هذه الملفات في أدلة مختلفة في ملف ZIP.

عرض المعلومات باستخدام الأمر zipinfo

ال zipinfo يمنحك الأمر طريقة أخرى للنظر داخل ملف ZIP. كما في السابق، نقوم بتوجيه الإخراج عبر less.

zipinfo source_code.zip | less

ls على أرشيف zip في نافذة المحطة الطرفية


من اليسار إلى اليمين يظهر الناتج:

  • أذونات الملف
  • إصدار الأداة المستخدمة لإنشاء ملف ZIP
  • حجم الملف الأصلي
  • موصوف الملف (موضح أدناه)
  • طريقة الضغط (الانكماش في هذه الحالة)
  • البيانات وختم الوقت
  • اسم الملف وأي دليل

يتكون موصوف الملف من حرفين. الحرف الأول سيكون “t” أو “b” للإشارة إلى ملف نصي أو ثنائي. إذا كان حرفًا كبيرًا، فسيتم تشفير الملف. قد يكون الحرف الثاني واحدًا من أربعة أحرف. يمثل هذا الحرف نوع البيانات الوصفية المضمنة لهذا الملف: لا شيء، أو رأس محلي ممتد، أو “حقل إضافي”، أو كليهما.

  • -: إذا لم يكن أي منهما موجودًا، فسيكون الحرف عبارة عن شرطة
  • ل: إذا كان هناك رأس محلي ممتد ولكن لا يوجد حقل إضافي
  • س: إذا لم يكن هناك رأس محلي ممتد ولكن يوجد حقل إضافي
  • س: إذا كان هناك رأس محلي ممتد وكان هناك حقل إضافي


ls على أرشيف zip في نافذة المحطة الطرفية

تقسيم الملف باستخدام الأمر zipsplit

إذا كنت بحاجة إلى إرسال ملف ZIP إلى شخص آخر ولكن هناك قيود على الحجم أو مشكلات في نقل الملف، فيمكنك استخدام zipsplit أمر لتقسيم ملف ZIP الأصلي إلى مجموعة من ملفات ZIP الأصغر.

ال -n يتيح لك خيار (الحجم) تعيين الحد الأقصى لحجم كل ملف ZIP جديد. في هذا المثال، نقوم بتقسيم source_code.zip الملف. لا نريد أن يكون حجم أي من ملفات ZIP الجديدة أكبر من 100 كيلوبايت (102400 بايت).

zipsplit -n 102400 source_code.zip

ls على أرشيف zip في نافذة المحطة الطرفية


لا يمكن أن يكون الحجم الذي تختاره أصغر من حجم أي من الملفات الموجودة في ملف ZIP.

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

أضف تعليق