zip - تجميع وضغط (أرشفة) الملفات
ملخص
zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path] [-n suffixes] [-t date]
[-tt date] [zipfile [file ...]] [-xi list]
zipcloak (انظر صفحة الدليل المنفصلة)
zipnote (انظر صفحة الدليل المنفصلة)
zipsplit (انظر صفحة الدليل المنفصلة)
ملاحظة: تم تغيير معالجة سطر الأوامر في zip لدعم الخيارات الطويلة والتعامل مع جميع الخيارات والحجج بشكل أكثر اتساقًا. قد لا تعمل بعض سطور الأوامر القديمة التي تعتمد على عدم اتساق سطر الأوامر بعد الآن.
الوصف
zip هي أداة لضغط الملفات وتجميعها لأنظمة Unix و VMS و MSDOS و OS/2 و Windows 9x/NT/XP و
Minix و Atari و Macintosh و Amiga و Acorn RISC OS. وهي مماثلة لمجموعة من أوامر Unix tar(1) و compress(1) ومتوافقة مع PKZIP (برنامج Phil Katz ZIP لنظام MSDOS).
برنامج مصاحب (unzip(1)) يقوم بفك ضغط أرشيفات zip. يمكن لبرنامجي zip و unzip(1) العمل مع الأرشيفات التي تم إنشاؤها بواسطة PKZIP (والتي تدعم معظم ميزات PKZIP حتى إصدار PKZIP 4.6)، ويمكن لـ PKZIP و PKUNZIP العمل مع الأرشيفات التي تم إنشاؤها بواسطة zip (مع بعض الاستثناءات، ولا سيما الأرشيفات المتدفقة، ولكن التغييرات الأخيرة في معيار ملف zip قد تسهل التوافق). يدعم إصدار zip 3.0 ملحقات Zip64 الخاصة بـ PKZIP 4.5 التي تسمح للأرشيفات وكذلك الملفات بتجاوز الحد السابق البالغ 2 جيجابايت (4 جيجابايت في بعض الحالات). يدعم zip الآن أيضًا ضغط bzip2 إذا تم تضمين مكتبة bzip2 عند تجميع zip. لاحظ أن PKUNZIP 1.10 لا يمكنه استخراج الملفات التي تم إنشاؤها بواسطة PKZIP 2.04 أو zip 3.0. يجب عليك استخدام PKUNZIP 2.04g أو unzip 5.0p1 (أو إصدارات أحدث) لاستخراجها.
راجع قسم الأمثلة في أسفل هذه الصفحة للحصول على أمثلة على بعض الاستخدامات النموذجية لـ zip.
الأرشيفات الكبيرة و Zip64. يستخدم zip تلقائيًا ملحقات Zip64 عند إضافة ملفات أكبر من 4 جيجابايت إلى أرشيف، أو عند تحديث أرشيف يحتوي على إدخالات Zip64 (إذا كان الأرشيف الناتج لا يزال بحاجة إلى Zip64)، أو عندما يتجاوز حجم الأرشيف 4 جيجابايت، أو عند تجاوز عدد الإدخالات في الأرشيف حوالي 64 ألف. يستخدم Zip64 أيضًا للأرشيفات المتدفقة من الإدخال القياسي حيث لا يتم معرفة حجم هذه الأرشيفات مسبقًا، ولكن يمكن استخدام الخيار -fz- لإجبار zip على إنشاء أرشيفات متوافقة مع PKZIP 2 (طالما أن ملحقات Zip64 ليست ضرورية). يجب عليك استخدام برنامج فك ضغط متوافق مع PKZIP 4.5، مثل unzip 6.0 أو أحدث، لاستخراج الملفات التي تستخدم ملحقات Zip64.
بالإضافة إلى ذلك، قد لا تكون الأرشيفات المتدفقة أو الإدخالات المشفرة باستخدام التشفير القياسي أو الأرشيفات المقسمة التي تم إنشاؤها باستخدام خيار الإيقاف مؤقتًا متوافقة مع PKZIP حيث يتم استخدام واصفات البيانات و PKZIP في وقت كتابة هذا البرنامج لا يدعم واصفات البيانات (ولكن التغييرات الحديثة في معيار zip المنشور تتضمن الآن بعض الدعم لتنسيق واصف البيانات الذي يستخدمه zip).
نظام التشغيل Mac OS X. على الرغم من أن إصدارات Mac السابقة كان لديها منفذ zip خاص بها، إلا أن zip يدعم نظام التشغيل Mac OS X كجزء من منفذ Unix، وتطبق معظم ميزات Unix. تشير الإشارات إلى "MacOS" أدناه عمومًا إلى إصدارات MacOS أقدم من OS X. من المتوقع أن يتضمن الإصدار التالي من zip دعمًا لبعض ميزات Mac OS في منفذ Unix Mac OS X، مثل الفروع المخصصة.
للحصول على مساعدة موجزة حول zip و unzip، قم بتشغيل كل منهما دون تحديد أي معلمات على سطر الأوامر.
الاستخدام
البرنامج مفيد لتجميع مجموعة من الملفات للتوزيع؛ ولأرشفة الملفات؛ ولتوفير مساحة القرص عن طريق ضغط الملفات أو الدلائل غير المستخدمة مؤقتًا.
يقوم برنامج zip بوضع ملف واحد أو أكثر مضغوطًا في أرشيف zip واحد، جنبًا إلى جنب مع معلومات حول الملفات (الاسم والمسار وتاريخ ووقت آخر تعديل وحماية ومعلومات التحقق لضمان سلامة الملف). يمكن تجميع هيكل دليل كامل في أرشيف zip بأمر واحد. معدلات الضغط من 2: 1 إلى 3: 1 شائعة للملفات النصية. يحتوي zip على طريقة ضغط واحدة (deflation) ويمكنه أيضًا تخزين الملفات بدون ضغط. (إذا تمت إضافة دعم bzip2، يمكن لـ zip أيضًا الضغط باستخدام ضغط bzip2، ولكن تتطلب هذه الإدخالات برنامج unzip حديثًا إلى حد ما لفك الضغط. عند تحديد ضغط bzip2، فإنه يحل محل deflation كطريقة افتراضية.) يختار zip تلقائيًا الأفضل بين الطريقتين (deflation أو store أو، إذا تم تحديد bzip2، bzip2 أو store) لكل ملف ليتم ضغطه.
تنسيق الأمر. تنسيق الأمر الأساسي هو
zip options archive inpath inpath ...
حيث archive هو أرشيف zip جديد أو موجود و inpath هو مسار دليل أو ملف يتضمن اختياريًا أحرف البدل. عند إعطاء اسم أرشيف zip موجود، سيقوم zip باستبدال الإدخالات التي تحمل نفس الاسم في أرشيف zip (مطابقة الأسماء النسبية المخزنة في الأرشيف) أو
إضافة إدخالات للأسماء الجديدة. على سبيل المثال، إذا كان foo.zip موجودًا ويحتوي على foo/file1 و foo/file2، وكان الدليل foo يحتوي على الملفات foo/file1 و foo/file3، ثم:
zip -r foo.zip foo
أو بشكل أكثر إيجازًا
zip -r foo foo
سيؤدي إلى استبدال foo/file1 في foo.zip وإضافة foo/file3 إلى foo.zip. بعد ذلك، يحتوي foo.zip على
foo/file1 و foo/file2 و foo/file3، مع عدم تغيير foo/file2 من ذي قبل.
لذلك، إذا كان قبل تنفيذ أمر zip، فإن foo.zip يحتوي على:
foo/file1 foo/file2
والدليل foo يحتوي على:
file1 file3
ثم سيكون foo.zip:
foo/file1 foo/file2 foo/file3
حيث يتم استبدال foo/file1 ويتم إضافة foo/file3.
-@ file lists. إذا تم تحديد قائمة ملفات كـ -@ [غير متوفر على MacOS]، يأخذ zip قائمة ملفات الإدخال من الإدخال القياسي بدلاً من سطر الأوامر. على سبيل المثال،
zip -@ foo
سيقوم بتخزين الملفات المدرجة سطرًا واحدًا في كل مرة في الإدخال القياسي في ملف foo.zip.
في أنظمة Unix، يمكن استخدام هذا الخيار بفعالية كبيرة بالاقتران مع الأمر find (1).
على سبيل المثال، لعمل أرشيف لجميع ملفات مصدر C في الدليل الحالي ودلائله الفرعية:
find . -name "*.[ch]" -print | zip source -@
(لاحظ أنه يجب اقتباس النمط لمنع shell من توسيعه).
الإدخال والإخراج المتدفق. سيقبل zip أيضًا شرطة واحدة ("-") كاسم لملف zip، وفي هذه الحالة سيكتب ملف zip إلى الإخراج القياسي، مما يسمح بتوجيه الإخراج إلى برنامج آخر. على سبيل المثال:
zip -r - . | dd of=/dev/nrst0 obs=16k
سيقوم بكتابة إخراج zip مباشرة إلى شريط بتحديد حجم الكتلة المحدد لغرض عمل نسخة احتياطية من الدليل الحالي.
يقبل `zip` أيضًا شرطة واحدة ("-") كاسم للملف المراد ضغطه، وفي هذه الحالة سيقرأ الملف من الإدخال القياسي، مما يسمح لـ `zip` بأخذ إدخال من برنامج آخر. على سبيل المثال:
tar cf - . | zip backup سيقوم بضغط إخراج أمر `tar` لغرض عمل نسخة احتياطية من الدليل الحالي.
عادةً ما ينتج هذا ضغطًا أفضل من المثال السابق باستخدام الخيار `-r` لأن `zip` يمكنه الاستفادة من التكرار بين الملفات. يمكن استعادة النسخة الاحتياطية باستخدام الأمر
unzip -p backup | tar xfعندما لا يتم إعطاء اسم لملف zip ولا يكون stdout هو terminal، يعمل `zip` كمرشح، ويقوم بضغط الإدخال القياسي إلى الإخراج القياسي. على سبيل المثال،
tar cf - . | zip | dd of=/dev/nrst0 obs=16k
يعادل
tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
يمكن استخراج أرشيفات zip التي تم إنشاؤها بهذه الطريقة باستخدام البرنامج `funzip` المتوفر في حزمة `unzip`، أو باستخدام `gunzip` المتوفر في حزمة `gzip` (ولكن قد لا يدعم بعض `gunzip` هذا إذا كان `zip` يستخدم امتدادات Zip64). على سبيل المثال:
dd if=/dev/nrst0 ibs=16k | funzip | tar xvfيمكن أيضًا حفظ الدفق في ملف واستخدام `unzip`.
إذا تم تمكين دعم Zip64 للملفات والأرشيفات الكبيرة وكان zip يستخدم كمرشح، فإنه ينشئ أرشيف Zip64 يتطلب برنامج فك ضغط متوافق مع PKZIP 4.5 أو أحدث لقراءته. هذا لتجنب الغموض في هيكل ملف zip المحدد في معيار zip الحالي (PKWARE AppNote) حيث يجب اتخاذ قرار استخدام Zip64 قبل كتابة البيانات للإدخال، ولكن بالنسبة للدفق، لا يُعرف حجم البيانات في تلك المرحلة. إذا كانت البيانات معروفة بأنها أصغر من 4 جيجابايت، يمكن استخدام الخيار -fz- لمنع استخدام Zip64، ولكن سيخرج zip بخطأ إذا كان Zip64 مطلوبًا بالفعل. يمكن لـ zip 3 و unzip 6 والإصدارات الأحدث قراءة الأرشيفات التي تحتوي على إدخالات Zip64. أيضًا، يقوم zip بإزالة امتدادات Zip64 إذا لم تكن ضرورية عند نسخ إدخالات الأرشيف (راجع الخيار -U (--copy)).
عند توجيه الإخراج إلى ملف آخر، لاحظ أنه يجب أن تكون جميع الخيارات قبل إعادة التوجيه بما في ذلك -x. على سبيل المثال:
zip archive "*.h" "*.c" -x donotinclude.h orthis.h > tofile
ملفات ZIP. عند تعديل أرشيف ZIP موجود، ستقوم ZIP بكتابة ملف مؤقت يحتوي على المحتوى الجديد، ولن تستبدل الملف القديم إلا بعد اكتمال عملية إنشاء الإصدار الجديد بنجاح دون أخطاء.
إذا كان اسم أرشيف ZIP لا يحتوي على امتداد، فسيتم إضافة الامتداد .zip. إذا كان الاسم يحتوي بالفعل على امتداد آخر غير .zip، فسيتم الاحتفاظ بالامتداد الحالي دون تغيير. ومع ذلك، تتطلب الأرشيفات المقسمة (الأرشيفات المقسمة إلى ملفات متعددة) امتداد .zip في الملف الأخير.
مسح الملفات وقراءتها. عند بدء تشغيل ZIP، يقوم بمسح الملفات التي يجب معالجتها (إذا لزم الأمر). إذا استغرق هذا المسح أكثر من 5 ثوانٍ تقريبًا، فستعرض ZIP رسالة "جاري مسح الملفات" وتبدأ في عرض نقاط تقدم كل ثانيتين أو بعد عدد معين من الإدخالات التي تمت معالجتها، أيهما أطول. إذا كان هناك أكثر من ثانيتين بين النقاط، فقد يشير ذلك إلى أن العثور على كل ملف يستغرق وقتًا، وقد يعني ذلك وجود اتصال شبكة بطيء. (في الواقع، عملية مسح الملفات الأولية هي عملية من خطوتين حيث يتبع مسح الدليل عملية فرز، ويتم فصل هاتين الخطوتين بمسافة في النقاط. إذا تم تحديث أرشيف موجود، تظهر مسافة أيضًا بين مسح الملفات الموجودة ومسح الملفات الجديدة.) لا يتم التحكم في نقاط مسح الملفات بواسطة خيار حجم النقطة -ds، ولكن يتم إيقاف تشغيل النقاط بواسطة الخيار -q (الوضع الهادئ). يمكن استخدام الخيار -sf (إظهار الملفات) لمسح الملفات والحصول على قائمة بالملفات التي تم مسحها دون معالجتها بالفعل.
إذا لم تتمكن ZIP من قراءة ملف، فإنها تصدر تحذيرًا ولكنها تستمر. راجع الخيار -MM أدناه لمعرفة المزيد حول كيفية تعامل ZIP مع الأنماط التي لا تتطابق والملفات التي لا يمكن قراءتها. إذا تم تخطي بعض الملفات، يتم إصدار تحذير في نهاية عملية ZIP مع الإشارة إلى عدد الملفات التي تمت قراءتها وعدد الملفات التي تم تخطيها.
أوضاع الأوامر. تدعم ZIP الآن نوعين مختلفين من أوضاع الأوامر، الخارجية والداخلية. تقرأ الأوضاع الخارجية (إضافة وتحديث وتحديث) الملفات من نظام الملفات (بالإضافة إلى الملفات الموجودة في أرشيف موجود) بينما تعمل الأوضاع الداخلية (حذف ونسخ) حصريًا على الإدخالات الموجودة في أرشيف موجود.
إضافة
تحديث الإدخالات الموجودة وإضافة ملفات جديدة. إذا لم يكن الأرشيف موجودًا، فسيتم إنشاؤه. هذا هو الوضع الافتراضي.
تحديث (-u)
تحديث الإدخالات الموجودة إذا كانت أحدث في نظام الملفات وإضافة ملفات جديدة. إذا لم يكن الأرشيف موجودًا، فسيتم إصدار تحذير ثم إنشاء أرشيف جديد.
تحديث (-f)
تحديث الإدخالات الموجودة في الأرشيف إذا كانت أحدث في نظام الملفات. لا يتم إضافة ملفات جديدة
إلى الأرشيف.
حذف (-d)
تحديد الإدخالات في أرشيف موجود وحذفها.
نسخ (-U)
تحديد الإدخالات في أرشيف موجود ونسخها إلى أرشيف جديد. هذا الوضع الجديد مشابه للتحديث ولكن تحدد الأنماط الموجودة في سطر الأوامر الإدخالات الموجودة في الأرشيف الموجود بدلاً من الملفات الموجودة في نظام الملفات، ويستخدم الخيار --out لكتابة الأرشيف الناتج إلى ملف جديد بدلاً من تحديث الأرشيف الموجود، مع ترك الأرشيف الأصلي دون تغيير.
تُعتبر خاصية المزامنة الجديدة للملفات (-FS) وضعًا جديدًا، على الرغم من أنها مشابهة لوضع التحديث. يقوم هذا الوضع بمزامنة الأرشيف مع الملفات الموجودة على نظام التشغيل، مع استبدال الملفات في الأرشيف فقط إذا كان وقت أو حجم ملف نظام التشغيل مختلفًا، وإضافة ملفات جديدة، وحذف الإدخالات من الأرشيف حيث لا يوجد ملف مطابق. نظرًا لأن هذا الوضع يمكنه حذف الإدخالات من الأرشيف، ففكر في إنشاء نسخة احتياطية من الأرشيف.
انظر أيضًا إلى -DF لإنشاء أرشيفات الفرق.
أرشيفات مُجزأة. يمكن لـ zip الإصدار 3.0 والإصدارات الأحدث إنشاء أرشيفات مُجزأة. الأرشيف المُجزأ هو أرشيف zip قياسي مقسم إلى ملفات متعددة. (لاحظ أن الأرشيفات المُجزأة ليست مجرد أرشيفات مقسمة إلى أجزاء، حيث يتم الآن تحديد إزاحات الإدخالات بناءً على بداية كل جزء. يؤدي دمج الأجزاء معًا إلى إبطال هذه الإزاحات، ولكن يمكن لـ unzip عادةً التعامل معها. عادةً ما يرفض zip معالجة أرشيف مُدمج من هذا القبيل ما لم يتم استخدام خيار التصحيح -FF لتصحيح الإزاحات.)
أحد استخدامات الأرشيفات المُجزأة هو تخزين أرشيف كبير على وسائط قابلة للإزالة متعددة. بالنسبة للأرشيف المُجزأ الذي يحتوي على 20 ملفًا مُجزأ، عادةً ما تكون الملفات مُسماة (استبدل ARCHIVE باسم الأرشيف الخاص بك) ARCHIVE.z01، ARCHIVE.z02، ...، ARCHIVE.z19، ARCHIVE.zip. لاحظ أن الملف الأخير هو ملف .zip. على النقيض من ذلك، فإن الأرشيفات المُقسمة هي الأرشيفات متعددة الأقراص الأصلية والتي تستخدم عمومًا الأقراص المرنة وتستخدم تسميات الأقراص لتخزين أرقام الأقراص. يدعم zip الأرشيفات المُجزأة ولكنه لا يدعم الأرشيفات المُقسمة، على الرغم من وجود إجراء لتحويل الأرشيفات المُجزأة ذات الحجم المناسب إلى أرشيفات مُقسمة. ينطبق الشيء نفسه على العكس، حيث يمكن نسخ كل ملف من أرشيف مُقسم بالترتيب إلى ملفات بالأسماء المذكورة أعلاه لإنشاء أرشيف مُجزأ.
استخدم -s لتعيين حجم التقسيم وإنشاء أرشيف مُجزأ. يتم إعطاء الحجم كرقم متبوعًا اختياريًا بواحد من k (كيلو بايت)، m (ميغا بايت)، g (جيجا بايت)، أو t (تيرابايت) (افتراضيًا هو m). يمكن استخدام الخيار -sp لإيقاف zip مؤقتًا بين عمليات التقسيم للسماح بتغيير الوسائط القابلة للإزالة، على سبيل المثال، ولكن اقرأ الأوصاف والتحذيرات لكل من -s و -sp أدناه.
على الرغم من أن zip لا يقوم بتحديث الأرشيفات المُجزأة، إلا أن zip يوفر الخيار الجديد -O (--output-file أو --out) للسماح بتحديث الأرشيفات المُجزأة وحفظها في أرشيف جديد. على سبيل المثال،
zip inarchive.zip foo.c bar.c --out outarchive.zip
يقرأ الأرشيف inarchive.zip، حتى لو كان مُجزأ، ويضيف الملفين foo.c و bar.c، ويكتب الأرشيف الناتج إلى outarchive.zip. إذا كان inarchive.zip مُجزأ، فإن outarchive.zip يتجه افتراضيًا إلى نفس حجم التقسيم. كن على علم بأنه إذا كان outarchive.zip وأي ملفات مُجزأة يتم إنشاؤها به موجودة بالفعل، فسيتم دائمًا الكتابة فوقها حسب الحاجة دون تحذير. قد يتم تغيير هذا في المستقبل.
Unicode. على الرغم من أن معيار zip يتطلب تخزين المسارات في أرشيف باستخدام مجموعة أحرف محددة، إلا أنه في الممارسة العملية، قامت zip بتخزين المسارات في الأرشيفات في مجموعة الأحرف المحلية. يؤدي ذلك إلى حدوث مشكلات عندما يتم إنشاء أو تحديث أرشيف على نظام يستخدم مجموعة أحرف واحدة ثم يتم استخراجه على نظام آخر يستخدم مجموعة أحرف مختلفة. عند تجميع zip مع تمكين دعم Unicode على الأنظمة الأساسية التي تدعم الأحرف العريضة، تقوم zip الآن بتخزين، بالإضافة إلى المسار المحلي القياسي للتوافق مع الإصدارات السابقة، ترجمة UTF-8 للمسار. يوفر هذا مجموعة أحرف عالمية مشتركة لتخزين المسارات التي تسمح باستخراج هذه المسارات بالكامل على أنظمة أخرى تدعم Unicode، وللتطابق قدر الإمكان على الأنظمة التي لا تدعمها.
في أنظمة Win32، حيث يتم تخزين المسارات داخليًا بتنسيق Unicode ولكن يتم تمثيلها في مجموعة الأحرف المحلية، من الممكن أن يتم تخطي بعض المسارات أثناء مسح دليل مجموعة الأحرف المحلية. يمكن الآن لـ zip مع دعم Unicode قراءة هذه المسارات وتخزينها. لاحظ أن أنظمة Win 9x وأنظمة ملفات FAT لا تدعم Unicode بالكامل.
انتبه إلى أن نوافذ وحدة التحكم في Win32 و Unix، على سبيل المثال، قد لا تعرض جميع الأحرف بدقة بسبب الطريقة التي يقوم بها كل نظام تشغيل بتبديل مجموعات الأحرف للعرض. ومع ذلك، يجب أن تعرض أدوات التنقل في الدليل المسارات الصحيحة إذا تم تحميل الخطوط المطلوبة.
تنسيق سطر الأوامر. يحتوي هذا الإصدار من zip على معالجة محدثة لسطر الأوامر ودعم الخيارات الطويلة.
تأخذ الخيارات القصيرة الشكل التالي:
-s[-][s[-]...][value][=value][ value]
حيث s هي خيار قصير مكون من حرف أو حرفين. الخيار القصير الذي يأخذ قيمة يكون هو الأخير في وسيطة، وكل شيء بعده يعتبر القيمة. إذا كان يمكن عكس الخيار وفورًا بعد الخيار، يتم عكس الخيار. يمكن أيضًا إعطاء الخيارات القصيرة كحجج منفصلة:
-s[-][value][=value][ value] -s[-][value][=value][ value] ...
بشكل عام، تأخذ الخيارات القصيرة قيمًا إما كجزء من نفس الوسيطة أو كحجة التالية. يتم دعم علامة (=) اختيارية أيضًا. لذلك:
-ttmmddyyyy
و
-tt=mmddyyyy
و
-tt mmddyyyy
كلها تعمل. تقبل الخيارات -x و -i قوائم من القيم وتستخدم تنسيقًا مختلفًا قليلاً موصوفًا أدناه. انظر الخيارات -x و -i.
تأخذ الخيارات الطويلة الشكل التالي:
--longoption[-][=value][ value]
حيث يبدأ الخيار بـ --، ولديه اسم متعدد الأحرف، ويمكن أن يتضمن شرطة في النهاية لعكس الخيار (إذا كان الخيار يدعم ذلك)، ويمكن أن يكون له قيمة (وسيطة الخيار) يتم تحديدها عن طريق وضع علامة (=) قبلها (بدون مسافات). يمكن أيضًا أن تتبع القيم الوسيطة. لذلك:
--before-date=mmddyyyy
و
--before-date mmddyyyy
كلاهما يعمل.
يمكن تقصير أسماء الخيارات الطويلة إلى أقصر اختصار فريد. راجع أوصاف الخيارات أدناه لمعرفة الخيارات التي تدعم الخيارات الطويلة. لتجنب الارتباك، تجنب اختصار خيار قابل للعكس يحتوي على شرطة ("-") في الشرطة إذا كنت تخطط لعكسه (سيعتبر المحلل الشرطة اللاحقة، مثل الخيار --some-option باستخدام --some- كخيار، كجزء من الاسم بدلاً من شرطة العكس). قد يتم تغيير هذا في المستقبل لفرض أن تكون الشرطة الأخيرة في --some هي شرطة العكس.
الخيارات
-a
--ascii
[الأنظمة التي تستخدم EBCDIC] ترجم الملف إلى تنسيق ASCII.
-A
--adjust-sfx
عدّل أرشيفًا تنفيذيًا ذاتيًا. يتم إنشاء أرشيف تنفيذي ذاتي عن طريق إضافة بادئة برنامج التشغيل الذاتي (SFX) إلى أرشيف موجود. يخبر خيار -A برنامج zip بتعديل إزاحات الإدخال المخزنة في الأرشيف لأخذ بيانات "البادئة" هذه في الاعتبار.
ملاحظة: الأرشيفات التنفيذية ذاتية الاستخراج لنظام Amiga هي حالة خاصة. في الوقت الحالي، يمكن لمنفذ Amiga من برنامج zip فقط تعديل أو تحديث هذه الأرشيفات دون إتلافها. يمكن استخدام -J لإزالة برنامج التشغيل الذاتي (SFX) إذا كانت هناك حاجة إلى إجراء تحديثات أخرى.
-AC
--archive-clear
[WIN32] بمجرد إنشاء الأرشيف (واختباره إذا تم استخدام -T، وهو أمر موصى به)، امسح بت الأرشيف للملفات التي تمت معالجتها. تحذير: بمجرد مسح البتات، يتم مسحها. قد ترغب في استخدام خيار -sf لعرض الملفات لتخزين قائمة الملفات التي تمت معالجتها في حالة الحاجة إلى تكرار عملية الأرشيف. ضع في اعتبارك أيضًا استخدام خيار -MM الذي يجب أن يطابق. تأكد من الاطلاع على -DF كطريقة محتملة وأفضل لعمل نسخ احتياطية تدريجية.
-AS
--archive-set
[WIN32] قم بتضمين الملفات التي تم تعيين بت الأرشيف لها فقط. لا يتم تخزين الدلائل عند استخدام -AS، على الرغم من أنه افتراضيًا، يتم تخزين مسارات الإدخالات، بما في ذلك الدلائل، كالمعتاد ويمكن استخدامها بواسطة معظم برامج فك الضغط لإعادة إنشاء الدلائل.
يتم تعيين بت الأرشيف بواسطة نظام التشغيل عندما يتم تعديل ملف، وإذا تم استخدامه مع -AC، يمكن أن يوفر -AS إمكانية النسخ الاحتياطي التدريجي. ومع ذلك، يمكن للتطبيقات الأخرى تعديل بت الأرشيف وقد لا يكون مؤشرًا موثوقًا به للملفات التي تغيرت منذ عملية الأرشيف الأخيرة. الطرق البديلة لإنشاء نسخ احتياطية تدريجية هي استخدام -t لاستخدام تواريخ الملفات، على الرغم من أن هذا لن يلتقط الملفات القديمة التي تم نسخها إلى الدلائل التي يتم أرشفتها، و -DF لإنشاء أرشيف تفاضلي.
-B
--binary
[VM/CMS و MVS] اجعل الملف يُقرأ كملف ثنائي (افتراضيًا، يكون نصيًا).
-Bn مسار [TANDEM] قم بتعيين خيارات تنسيق Edit/Enscribe باستخدام n المعرّف على النحو التالي:
البت 0: لا تقم بإضافة فاصل (Edit/Enscribe)
البت 1: استخدم LF بدلاً من CR/LF كفاصل (Edit/Enscribe)
البت 2: املأ السجل بالمسافة إلى أقصى طول للسجل (Enscribe)
البت 3: قم بقص المسافة الزائدة (Enscribe)
البت 8: فرض 30 كيلو (توسيع) للقراءة الكبيرة للملفات غير المهيكلة
-b مسار
--temp-path مسار
استخدم المسار المحدد للأرشيف المؤقت لـ zip. على سبيل المثال:
zip -b /tmp stuff *
سيضع هذا الأرشيف المؤقت لـ zip في الدليل /tmp، وسيتم نسخ stuff.zip إلى الدليل الحالي عند الانتهاء. هذا الخيار مفيد عند تحديث أرشيف موجود ولا يحتوي نظام الملفات الذي يحتوي على هذا الأرشيف القديم على مساحة كافية للاحتفاظ بكل من الأرشيفات القديمة والجديدة في نفس الوقت. قد يكون مفيدًا أيضًا في بعض الحالات عند البث لتجنب الحاجة إلى واصفات البيانات. لاحظ أن استخدام هذا الخيار قد يتطلب من برنامج zip أن يستغرق وقتًا إضافيًا لنسخ ملف الأرشيف إلى نظام الملفات الوجهة عند الانتهاء.
-c
--entry-comments
أضف تعليقات من سطر واحد لكل ملف. يتم إجراء عمليات الملفات (الإضافة والتحديث) أولاً،
ثم يُطلب من المستخدم إدخال تعليق من سطر واحد لكل ملف. أدخل التعليق متبوعًا بـ "إرجاع"، أو ببساطة اضغط على "إرجاع" لعدم وجود تعليق.
-C
--preserve-case
[VMS] حافظ على حالة الأحرف في جميع أنحاء نظام VMS. إنكار هذا الخيار (-C-) يحول إلى أحرف صغيرة.
-C2
--preserve-case-2
[VMS] حافظ على حالة الأحرف في ODS2 على نظام VMS. إنكار هذا الخيار (-C2-) يحول إلى أحرف صغيرة.
-C5
--preserve-case-5
[VMS] حافظ على حالة الأحرف في ODS5 على نظام VMS. إنكار هذا الخيار (-C5-) يحول إلى أحرف صغيرة.
-d
--delete
قم بإزالة (حذف) الإدخالات من أرشيف مضغوط. على سبيل المثال:
zip -d foo foo/tom/junk foo/harry/\* \*.o
سيؤدي هذا إلى إزالة الإدخال foo/tom/junk، وجميع الملفات التي تبدأ بـ foo/harry/، وجميع الملفات التي تنتهي بـ .o (في أي مسار). لاحظ أن توسيع المسار في shell قد تم تعطيله باستخدام شرطة مائلة للخلف، حتى يتمكن zip من رؤية العلامات النجمية، مما يتيح لـ zip المطابقة على محتويات الأرشيف المضغوط بدلاً من محتويات الدليل الحالي. (لا يتم استخدام الشرطات المائلة للخلف على الأنظمة الأساسية المستندة إلى MSDOS.) يمكن أيضًا استخدام علامات الاقتباس للهروب من العلامات النجمية كما في
zip -d foo foo/tom/junk "foo/harry/*" "*.o"
عدم الهروب من العلامات النجمية على نظام يتوسع فيه shell مع الأحرف البديلة قد يؤدي إلى تحويل العلامات النجمية إلى قائمة بالملفات في الدليل الحالي واستخدام تلك القائمة لحذف الإدخالات من الأرشيف.
في MSDOS، يكون الخيار -d حساسًا لحالة الأحرف عند مطابقة الأسماء في الأرشيف المضغوط. وهذا يتطلب إدخال أسماء الملفات بأحرف كبيرة إذا تم ضغطها بواسطة PKZIP على نظام MSDOS. (لقد فكرنا في جعل هذا الخيار غير حساس لحالة الأحرف على الأنظمة التي تكون فيها المسارات غير حساسة لحالة الأحرف، ولكن من الممكن أن يأتي الأرشيف من نظام تكون فيه حالة الأحرف مهمة ويمكن أن يتضمن الأرشيف كلاً من Bar و bar كملفين منفصلين في الأرشيف.) ولكن انظر الخيار الجديد -ic لتجاهل حالة الأحرف في الأرشيف.
-db
--display-bytes
عرض عدد البايتات الجارية التي تم ضغطها وعدد البايتات المتبقية.
-dc
--display-counts
عرض العدد الجاري للإدخالات التي تم ضغطها وعدد الإدخالات المتبقية.
-dd
--display-dots
عرض النقاط أثناء ضغط كل إدخال (باستثناء المنافذ التي تحتوي على مؤشر تقدم خاص بها). انظر -ds أدناه لضبط حجم النقطة. الافتراضي هو نقطة لكل 10 ميجابايت من ملف الإدخال الذي تتم معالجته. يعرض الخيار -v أيضًا النقاط (في السابق بمعدل أعلى بكثير من هذا ولكن الآن -v أيضًا يستخدم القيمة الافتراضية وهي 10 ميجابايت) ويتم التحكم في هذا المعدل أيضًا بواسطة -ds.
-df
--datafork
[MacOS] قم بتضمين فرع البيانات فقط من الملفات المضغوطة في الأرشيف. جيد لتصدير الملفات إلى أنظمة تشغيل أخرى. سيتم تجاهل فروع الموارد تمامًا.
-dg
--display-globaldots
عرض نقاط التقدم للأرشيف بدلاً من كل ملف. الأمر
zip -qdgds 10m
سيقوم بإيقاف معظم المخرجات باستثناء النقاط كل 10 ميجابايت.
-ds الحجم
--dot-size الحجم
يحدد كمية ملف الإدخال التي تتم معالجتها لكل نقطة معروضة. انظر -dd لتمكين عرض النقاط. يؤدي تعيين هذا الخيار إلى تضمين -dd. يكون الحجم بالتنسيق nm حيث n هو رقم و m هو مضاعف. حاليًا، يمكن أن تكون m هي k (كيلو بايت)، أو m (ميغا بايت)، أو g (جيجا بايت)، أو t (تيرابايت)، لذلك إذا كان n هو 100 و m هو k، فسيكون الحجم 100 كيلو بايت، أي 100 كيلو بايت. الافتراضي هو 10 ميجابايت.
يعرض الخيار -v أيضًا النقاط ويستخدم الآن قيمة افتراضية قدرها 10 ميجابايت أيضًا. يتم التحكم في هذا المعدل أيضًا بواسطة هذا الخيار. يؤدي تحديد حجم 0 إلى إيقاف تشغيل النقاط.
لا يتحكم هذا الخيار في النقاط الموجودة في رسالة "فحص الملفات" أثناء قيام zip بفحص ملفات الإدخال. يكون حجم النقطة لذلك ثابتًا عند ثانيتين أو عدد ثابت من الإدخالات، أيهما أطول.
-du
--display-usize
يعرض الحجم غير المضغوط لكل إدخال.
-dv
--display-volume
يعرض رقم وحدة التخزين (القرص) الذي يتم قراءة كل إدخال منه، إذا كان يتم قراءة أرشيف موجود، والذي يتم الكتابة إليه.
-D
--no-dir-entries
لا يتم إنشاء إدخالات في أرشيف zip للدلائل. يتم إنشاء إدخالات الدليل افتراضيًا حتى يتم حفظ سماتها في أرشيف zip. يمكن استخدام متغير البيئة ZIPOPT لتغيير الخيارات الافتراضية. على سبيل المثال، في نظام Unix مع ش:
ZIPOPT="-D"; export ZIPOPT
(يمكن استخدام المتغير ZIPOPT لأي خيار، بما في ذلك -i و -x باستخدام تنسيق خيار جديد مفصل أدناه، ويمكن أن يتضمن خيارات متعددة). الخيار -D هو اختصار لـ -x "*/" ولكن هذا الأخير لم يكن من الممكن تعيينه كافتراضي في متغير بيئة ZIPOPT لأن محتويات ZIPOPT يتم إدخالها بالقرب من بداية سطر الأوامر ويجب أن ينتهي ملف قائمة الملفات في نهاية السطر.
تسمح هذه النسخة من zip باستخدام خيارات -x و -i في ZIPOPT إذا تم استخدام التنسيق
-x ملف ملف ... @
حيث @ (وهو وسيطة هي فقط @) ينهي القائمة.
-DF
--difference-archive
إنشاء أرشيف يحتوي على جميع الملفات الجديدة والملفات التي تم تغييرها منذ إنشاء الأرشيف الأصلي. لكي يعمل هذا، يجب أن تكون قائمة ملفات الإدخال والدليل الحالي هي نفسها كما كانت أثناء عملية zip الأصلية.
على سبيل المثال، إذا تم إنشاء الأرشيف الحالي باستخدام
zip -r foofull .
من دليل bar، ثم الأمر
zip -r foofull . -DF --out foonew
أيضًا من دليل bar، فإنه ينشئ الأرشيف foonew الذي يحتوي فقط على الملفات غير الموجودة في foofull والملفات التي لا يتطابق حجمها أو وقت ملفها مع تلك الموجودة في foofull.
لاحظ أنه يجب تعيين متغير بيئة المنطقة الزمنية TZ وفقًا للمنطقة الزمنية المحلية حتى يعمل هذا الخيار بشكل صحيح. يمكن أن يؤدي تغيير المنطقة الزمنية منذ إنشاء الأرشيف الأصلي إلى عدم تطابق أي أوقات وتضمين جميع الملفات.
يمكن أن يكون أحد الأساليب الممكنة لعمل نسخة احتياطية من دليل هو إنشاء أرشيف عادي لمحتويات الدليل كنسخة احتياطية كاملة، ثم استخدام هذا الخيار لإنشاء نسخ احتياطية تدريجية.
-e
--encrypt
تشفير محتويات أرشيف zip باستخدام كلمة مرور يتم إدخالها على الجهاز استجابةً لطلب (لن يتم عرض هذا؛ إذا لم يكن الخطأ القياسي عبارة عن طرفية، فسيخرج zip بخطأ). يتم تكرار طلب كلمة المرور لتجنب أخطاء الكتابة.
-E
--longnames
[نظام التشغيل OS/2] استخدم سمة .LONGNAME الممتدة (إذا وجدت) كاسم ملف.
-f
--freshen
استبدل (حدث) إدخالًا موجودًا في أرشيف zip فقط إذا تم تعديله مؤخرًا من الإصدار الموجود بالفعل في أرشيف zip؛ على عكس خيار التحديث (-u)، لن يقوم بإضافة ملفات غير موجودة بالفعل في أرشيف zip. على سبيل المثال:
zip -f foo
يجب تشغيل هذا الأمر من نفس الدليل الذي تم تشغيل الأمر الأصلي zip منه، حيث تكون المسارات المخزنة في أرشيفات zip دائمًا نسبية.
لاحظ أنه يجب تعيين متغير البيئة TZ وفقًا للمنطقة الزمنية المحلية لكي تعمل خيارات -f و -u و -o بشكل صحيح.
الأسباب وراء ذلك معقدة بعض الشيء ولكنها تتعلق بالاختلافات بين أوقات الملفات بتنسيق Unix (دائمًا بتوقيت جرينتش) ومعظم أنظمة التشغيل الأخرى (دائمًا بالتوقيت المحلي) وضرورة مقارنة الاثنين. قيمة TZ النموذجية هي "MET-1MEST" (التوقيت الأوروبي الأوسط مع تعديل تلقائي لـ "التوقيت الصيفي").
التنسيق هو TTThhDDD، حيث TTT هي المنطقة الزمنية مثل MET، و hh هو الفرق بين توقيت جرينتش والتوقيت المحلي مثل -1 أعلاه، و DDD هي المنطقة الزمنية عندما يكون التوقيت الصيفي ساري المفعول. اترك DDD إذا لم يكن هناك توقيت صيفي. بالنسبة لمنطقة التوقيت الشرقي في الولايات المتحدة EST5EDT.
-F
--fix
-FF
--fixfix
أصلح أرشيف zip. يمكن استخدام الخيار -F إذا كانت بعض أجزاء الأرشيف مفقودة، ولكنه يتطلب دليلًا مركزيًا سليمًا إلى حد ما. يتم فحص الأرشيف المدخل كالمعتاد، ولكن سيتجاهل zip بعض المشكلات. يجب أن يكون الأرشيف الناتج صالحًا، ولكن سيتم ترك أي إدخالات غير متسقة.
عند مضاعفته كما في -FF، يتم فحص الأرشيف من البداية ويبحث zip عن توقيعات خاصة لتحديد الحدود بين أعضاء الأرشيف. الخيار الأحادي -F أكثر موثوقية إذا لم يكن الأرشيف تالفًا للغاية، لذا حاول استخدام هذا الخيار أولاً.
إذا كان الأرشيف تالفًا للغاية أو تم اقتطاع النهاية، فيجب عليك استخدام -FF. هذا تغيير عن zip 2.32، حيث يمكن لخيار -F قراءة أرشيف تم اقتطاعه. الخيار -F الآن يصلح بشكل أكثر موثوقية الأرشيفات التي بها أضرار طفيفة والخيار -FF مطلوب لإصلاح الأرشيفات التي ربما كان بإمكان -F إصلاحها من قبل.
لن يستعيد أي من الخيارين الأرشيفات التي تم نقلها بشكل غير صحيح في وضع ASCII بدلاً من الوضع الثنائي. بعد الإصلاح، قد يُظهر خيار -t في unzip أن بعض الملفات بها CRC سيئ. لا يمكن استعادة هذه الملفات؛ يمكنك إزالتها من الأرشيف باستخدام خيار -d في zip.
لاحظ أن -FF قد يواجه صعوبة في إصلاح الأرشيفات التي تتضمن أرشيف zip مضمنًا والذي تم تخزينه (بدون ضغط) في الأرشيف، اعتمادًا على الضرر، فقد يجد الإدخالات في الأرشيف المضمن بدلاً من الأرشيف نفسه. حاول استخدام -F أولاً لأنه لا توجد به هذه المشكلة.
لقد تغير تنسيق أوامر الإصلاح. على سبيل المثال، لإصلاح الأرشيف التالف
foo.zip،
```
zip -F foo --out foofix
```
يحاول قراءة الإدخالات بشكل طبيعي، ونسخ الإدخالات الجيدة إلى الأرشيف الجديد `foofix.zip`.
إذا لم ينجح هذا، كما هو الحال عندما يكون الأرشيف مبتورًا، أو إذا كانت بعض الإدخالات التي تعرف أنها موجودة في
الأرشيف مفقودة، فحاول
```
zip -FF foo --out foofixfix
```
وقارن الأرشيف الناتج بالأرشيف الذي تم إنشاؤه بواسطة `-F`. قد يؤدي خيار `-FF` إلى إنشاء
أرشيف غير متناسق. اعتمادًا على ما هو تالف، يمكنك بعد ذلك استخدام خيار `-F` لإصلاح هذا الأرشيف.
يمكن إصلاح الأرشيف المقسم الذي تفتقد إليه ملفات التقسيم باستخدام `-F` إذا كان لديك التقسيم الأخير
من الأرشيف (ملف `.zip`). إذا كان هذا الملف مفقودًا، فيجب عليك استخدام `-FF` لإصلاح
الأرشيف، والذي سيطلب منك التقسيمات التي لديك.
حاليًا، لا يمكن لخوارزميات الإصلاح استعادة الإدخالات التي بها مجموع اختباري تالف أو تالفة بطريقة أخرى.
`-FI`
`--fifo [Unix]` عادةً ما يتخطى `zip` قراءة أي أنابيب (قنوات) ذات اسم يتم مواجهتها، حيث يمكن أن يتوقف `zip` إذا لم يتم تغذية القناة. يخبر هذا الخيار `zip` بقراءة
محتويات أي قناة ذات اسم يجدها.
`-FS`
`--filesync`
قم بمزامنة محتويات الأرشيف مع الملفات الموجودة على نظام التشغيل. عادةً عند تحديث أرشيف، تتم إضافة ملفات جديدة ويتم تحديث الملفات التي تم تغييرها، ولكن الملفات التي لم تعد موجودة على نظام التشغيل لا يتم حذفها من الأرشيف. يُمكّن هذا الخيار وضعًا جديدًا يتحقق من الإدخالات في الأرشيف مقابل نظام الملفات. إذا تطابق وقت الملف وحجم الملف للإدخال مع وقت ملف نظام التشغيل وحجمه، فسيتم نسخ الإدخال من الأرشيف القديم بدلاً من قراءته من نظام الملفات وضغطه. إذا تغير ملف نظام التشغيل، فسيتم قراءة الإدخال وضغطه كالمعتاد. إذا لم يتطابق الإدخال الموجود في الأرشيف مع ملف على نظام التشغيل، فسيتم حذف الإدخال. يجب أن يؤدي تمكين هذا الخيار إلى إنشاء أرشيفات مماثلة للأرشيفات الجديدة، ولكن نظرًا لأنه يتم نسخ الإدخالات الموجودة بدلاً من ضغطها، فقد يكون تحديث أرشيف موجود باستخدام `-FS` أسرع بكثير من إنشاء أرشيف جديد. ضع في اعتبارك أيضًا استخدام `-u` لتحديث أرشيف.
لكي يعمل هذا الخيار، يجب تحديث الأرشيف من نفس الدليل الذي تم إنشاؤه فيه حتى تتطابق المسارات النسبية. إذا كان يتم نسخ عدد قليل من الملفات من الأرشيف القديم، فقد يكون من الأسرع إنشاء أرشيف جديد بدلاً من ذلك.
لاحظ أنه يجب تعيين متغير بيئة المنطقة الزمنية `TZ` وفقًا للمنطقة الزمنية المحلية لكي يعمل هذا الخيار بشكل صحيح. قد يؤدي تغيير المنطقة الزمنية منذ إنشاء الأرشيف الأصلي إلى عدم تطابق أي أوقات وإعادة ضغط جميع الملفات.
يحذف هذا الخيار الملفات من الأرشيف. إذا كنت بحاجة إلى الحفاظ على الأرشيف الأصلي، فقم بعمل نسخة من الأرشيف أولاً أو استخدم الخيار `--out` لإخراج الأرشيف المحدث إلى ملف جديد. على الرغم من أنه قد يكون أبطأ، إلا أن إنشاء أرشيف جديد باسم أرشيف جديد أكثر أمانًا، ويتجنب عدم تطابق مسارات الأرشيف ونظام التشغيل، ويفضل.
-g
--grow
يُلحق بالملف المضغوط المحدد بدلاً من إنشاء ملف جديد. في حالة فشل هذه العملية، يحاول برنامج zip استعادة الملف الأصلي. إذا فشلت عملية الاستعادة، فقد يتلف الملف. يتم تجاهل هذا الخيار في حالة عدم وجود ملف مضغوط موجود أو عند الحاجة إلى تحديث أو حذف عضو واحد على الأقل في الملف.
-h
-?
--help
يعرض معلومات مساعدة برنامج zip (يظهر هذا أيضًا عند تشغيل zip بدون وسائط).
-h2
--more-help
يعرض مساعدة موسعة تتضمن المزيد حول تنسيق سطر الأوامر، ومطابقة الأنماط، والخيارات الأقل شيوعًا.
-i files
--include files
يتضمن الملفات المحددة فقط، على النحو التالي:
zip -r foo . -i \*.c
سيؤدي هذا إلى تضمين الملفات التي تنتهي بـ .c في الدليل الحالي ودلائله الفرعية. (ملاحظة لمستخدمي PKZIP: الأمر المكافئ هو
pkzip -rP foo *.c
لا يسمح PKZIP بالتكرار في الدلائل بخلاف الدليل الحالي.) يمنع الشرطة المائلة الخلفية (\) استبدال اسم الملف بواسطة shell، بحيث يتم إجراء مطابقة الاسم بواسطة zip في جميع مستويات الدليل. [هذا مخصص لأنظمة Unix والأنظمة الأخرى حيث تقوم الشرطة المائلة الخلفية (\) بإلغاء حرف التعبير التالي. بالنسبة للأنظمة الأخرى حيث لا يقوم shell بمعالجة *، لا تستخدم الشرطة المائلة الخلفية (\) ويكون الأمر كما يلي:
zip -r foo . -i *.c
الأمثلة مخصصة لنظام Unix إلا إذا تم تحديد خلاف ذلك.] لذلك، لتضمين الدليل "dir"، وهو دليل موجود مباشرةً أسفل الدليل الحالي، استخدم:
zip -r foo . -i dir/\*
أو
zip -r foo . -i "dir/*"
لمطابقة المسارات مثل dir/a و dir/b/file.c [على المنافذ التي لا تحتوي على توسيع أحرف البدل في shell مثل MSDOS و Windows
zip -r foo . -i dir/*
يُستخدم.] لاحظ أنه حاليًا، الشرطة المائلة الخلفية في النهاية مطلوبة للدلائل (كما في
zip -r foo . -i dir/
لتضمين الدليل "dir").
الشكل الطويل للخيار الأول هو
zip -r foo . --include \*.c
ويؤدي نفس وظيفة الشكل القصير.
على الرغم من أن صيغة الأمر المستخدمة كانت تتطلب أن يكون الخيار -i في نهاية سطر الأوامر، إلا أن هذا الإصدار يسمح بوضع -i (أو --include) في أي مكان. تنتهي قائمة الملفات عند الوسيطة التالية التي تبدأ بـ -، أو نهاية سطر الأوامر، أو محدد القائمة @ (وهي وسيطة عبارة عن @ فقط). لذلك، يمكن إعطاء المثال السابق على النحو التالي:
zip -i \*.c @ -r foo .
على سبيل المثال. يجب أن تكون هناك مسافة بين الخيار والملف الأول في القائمة. بالنسبة لملف واحد فقط، يمكنك استخدام الشكل ذي القيمة الواحدة:
zip -i\*.c -r foo .
(لا توجد مسافة بين الخيار والقيمة) أو
zip --include=\*.c -r foo .
بصفتها أمثلة إضافية. لا يوصى باستخدام الأشكال ذات القيمة الواحدة لأنها قد تكون مربكة، وعلى وجه الخصوص، يمكن أن يتسبب تنسيق -ifile في حدوث مشكلات إذا كان الحرف الأول من اسم الملف يجمع مع i لتشكيل خيار من حرفين يبدأ بحرف i. استخدم -sc لمعرفة كيفية تحليل سطر الأوامر الخاص بك.
ممكن أيضًا:
zip -r foo . -_
سيؤدي هذا إلى تضمين الملفات الموجودة في الدليل الحالي ودلائله الفرعية فقط والتي تتطابق مع الأنماط الموجودة في الملف include.lst.
الملفات التي تطابق النماذج -i و -x هي مسارات داخلية للأرشيف. انظر -R لمزيد من المعلومات حول النماذج.
-I
--no-image
[Acorn RISC OS] لا تقم بفحص ملفات الصور. عند استخدام هذا الخيار، لن يتعامل برنامج zip مع ملفات الصور (مثل أقسام DOS أو أرشيفات Spark عند تحميل SparkFS) كأدلة، بل سيتم تخزينها كملفات فردية.
على سبيل المثال، إذا كان لديك SparkFS محملًا، فإن ضغط أرشيف Spark سينتج عنه ملف zip يحتوي على دليل (ومحتوياته)، بينما سيؤدي استخدام الخيار `I` إلى إنشاء ملف zip يحتوي على أرشيف Spark. من الواضح أن الحالة الثانية ستحصل عليها أيضًا (بدون خيار `I`) إذا لم يتم تحميل SparkFS.
-ic
--ignore-case
[VMS، WIN32] تجاهل حالة الأحرف عند مطابقة إدخالات الأرشيف. هذا الخيار متاح فقط على الأنظمة التي تتجاهل فيها حالة الأحرف في أسماء الملفات. على الأنظمة التي تحتوي على أنظمة ملفات غير حساسة لحالة الأحرف، عادةً ما يتم تجاهل حالة الأحرف عند مطابقة الملفات في نظام الملفات، ولكن لا يتم تجاهلها لوظائف مثل `-f` (تحديث)، و `-d` (حذف)، و `-U` (نسخ)، وما شابه ذلك عند المطابقة مع إدخالات الأرشيف (حاليًا، يتجاهل `-f` حالة الأحرف على VMS) لأنه يمكن أن تكون إدخالات الأرشيف من أنظمة يكون فيها لحالة الأحرف أهمية، ويمكن أن توجد أسماء متطابقة باستثناء حالة الأحرف في الأرشيف. يقوم الخيار `-ic` بجعل جميع عمليات المطابقة غير حساسة لحالة الأحرف. يمكن أن يؤدي ذلك إلى مطابقة العديد من إدخالات الأرشيف مع نمط سطر الأوامر.
-j
--junk-paths
قم بتخزين اسم الملف المحفوظ فقط (وتجاهل المسار)، ولا تقم بتخزين أسماء الدلائل. بشكل افتراضي، سيقوم برنامج zip بتخزين المسار الكامل (بالنسبة إلى الدليل الحالي).
-jj
--absolute-path
[MacOS] سجل المسار الكامل (+ اسم وحدة التخزين). سيتم تخزين المسار الكامل بما في ذلك وحدة التخزين. بشكل افتراضي، سيتم تخزين المسار النسبي.
-J
--junk-sfx
قم بإزالة أي بيانات مضافة في البداية (مثل برنامج بدء تشغيل SFX) من الأرشيف.
-k
--DOS-names
حاول تحويل الأسماء والمسارات لتتوافق مع MSDOS، وقم بتخزين سمة MSDOS فقط (فقط سمة الكتابة من المستخدم في Unix)، وقم بتمييز الإدخال على أنه تم إنشاؤه تحت MSDOS (حتى لو لم يكن كذلك)؛ من أجل التوافق مع PKUNZIP تحت MSDOS والذي لا يمكنه التعامل مع بعض الأسماء مثل تلك التي تحتوي على نقطتين.
-l
--to-crlf
قم بتحويل حرف نهاية السطر Unix LF إلى اتفاقية MSDOS CR LF. لا ينبغي استخدام هذا الخيار على الملفات الثنائية. يمكن استخدام هذا الخيار على Unix إذا كان ملف zip مخصصًا لـ PKUNZIP تحت MSDOS. إذا كانت الملفات المدخلة تحتوي بالفعل على CR LF، فسوف يضيف هذا الخيار CR إضافيًا. وذلك لضمان أن `unzip -a` على Unix سيعيد نسخة طبق الأصل من الملف الأصلي، لإلغاء تأثير `zip -l`. انظر `-ll` حول كيفية التعامل مع الملفات الثنائية.
-la
--log-append
ألحق بالملف الموجود. بشكل افتراضي، يتم الكتابة فوق الملف.
-lf logfilepath
--logfile-path logfilepath
افتح ملف سجل في المسار المحدد. بشكل افتراضي، يتم الكتابة فوق أي ملف موجود في هذا الموقع، ولكن سيؤدي خيار `-la` إلى فتح ملف موجود وإلحاق المعلومات الجديدة بأي معلومات موجودة. يتم كتابة التحذيرات والأخطاء فقط في السجل، إلا إذا تم إعطاء خيار `-li` أيضًا، فسيتم كتابة جميع الرسائل الإعلامية في السجل أيضًا.
-li
--log-info
قم بتضمين رسائل المعلومات، مثل أسماء الملفات التي يتم ضغطها، في السجل. الافتراضي هو عرض سطر الأوامر وأي تحذيرات وأخطاء، والحالة النهائية فقط.
-ll
--from-crlf
حوّل نهاية السطر من نوع MSDOS (CR LF) إلى نوع Unix (LF). يجب ألا يُستخدم هذا الخيار مع الملفات الثنائية. يمكن استخدام هذا الخيار على نظام MSDOS إذا كان ملف ZIP مخصصًا لفك الضغط باستخدام unzip تحت نظام Unix. إذا تم تحويل الملف وتم تحديد أن الملف لاحقًا هو ملف ثنائي، فسيتم إصدار تحذير، ومن المحتمل أن يكون الملف تالفًا. في هذا الإصدار، إذا اكتشفت العلامة -ll ملفًا ثنائيًا في المخزن المؤقت الأول الذي يتم قراءته من ملف، يقوم zip الآن بإصدار تحذير ويتخطى تحويل نهاية السطر لهذا الملف. يبدو أن هذا الفحص يكتشف جميع الملفات الثنائية التي تم اختبارها، ولكن يظل الفحص الأصلي ساريًا، وإذا تم تحديد أن الملف الذي تم تحويله لاحقًا هو ملف ثنائي، فسيتم إصدار هذا التحذير. يتم الآن استخدام خوارزمية جديدة للكشف عن الملفات الثنائية والتي ينبغي أن تسمح بتحويل نهاية السطر للملفات النصية بتنسيقات UTF-8 المشابهة.
-L
--license
عرض ترخيص zip.
-m
--move
انقل الملفات المحددة إلى أرشيف zip؛ في الواقع، يحذف هذا الخيار الدلائل/الملفات الهدف بعد إنشاء أرشيف zip المحدد. إذا أصبحت الدليل فارغًا بعد إزالة الملفات، فسيتم أيضًا إزالة الدليل. لا تتم أي عمليات حذف حتى يقوم zip بإنشاء الأرشيف بدون أخطاء. هذا مفيد لتوفير مساحة القرص، ولكنه قد يكون خطيرًا، لذلك يوصى باستخدامه بالاشتراك مع -T لاختبار الأرشيف قبل إزالة جميع ملفات الإدخال.
-MM
--must-match
يجب أن تتطابق جميع أنماط الإدخال مع ملف واحد على الأقل، ويجب أن تكون جميع ملفات الإدخال الموجودة قابلة للقراءة. عادةً، عندما لا يتطابق نمط إدخال مع ملف، يتم إصدار تحذير "الاسم غير مطابق"، وعندما يتم العثور على ملف إدخال ولكن لا يمكن قراءته لاحقًا، يتم إصدار تحذير "الملف مفقود أو لا يمكن قراءته". في أي من الحالتين، يواصل zip إنشاء الأرشيف، مع تخطي الملفات الجديدة المفقودة أو التي لا يمكن قراءتها، وتظل الملفات الموجودة في الأرشيف دون تغيير. بعد إنشاء الأرشيف، إذا كانت هناك أي ملفات لم يتمكن من قراءتها، يقوم zip بإرجاع رمز خطأ "فتح" (18 في معظم الأنظمة) بدلاً من رمز الإرجاع الطبيعي "نجاح" (0 في معظم الأنظمة). مع تعيين -MM، يخرج zip بمجرد عدم تطابق نمط إدخال (عندما يتم إصدار التحذير "الاسم غير مطابق") أو عندما لا يمكن قراءة ملف إدخال. في أي من الحالتين، يخرج zip مع رمز خطأ "فتح" ولا يتم إنشاء أي أرشيف.
هذا الخيار مفيد عندما تكون هناك قائمة معروفة من الملفات التي سيتم ضغطها، بحيث تؤدي أي ملفات مفقودة أو غير قابلة للقراءة إلى حدوث خطأ. إنه أقل فائدة عند استخدامه مع أحرف البدل، ولكن سيظل zip يخرج مع وجود خطأ إذا لم يتطابق أي نمط إدخال مع ملف واحد على الأقل، وإذا كانت أي من الملفات المتطابقة غير قابلة للقراءة. إذا كنت تريد إنشاء الأرشيف على أي حال وتحتاج فقط إلى معرفة ما إذا كانت هناك ملفات تم تخطيها، فلا تستخدم -MM وتحقق فقط من رمز الإرجاع. قد يكون -lf مفيدًا أيضًا.
-n suffixes
--suffixes suffixes
لا تحاول ضغط الملفات التي تحمل الامتدادات المحددة. سيتم ببساطة تخزين هذه الملفات (بنسبة ضغط 0٪) في ملف zip الناتج، بحيث لا يضيع zip وقته في محاولة ضغطها. يتم فصل الامتدادات إما بعلامات النقطتين أو الفاصلات. على سبيل المثال:
zip -rn .Z:.zip:.tiff:.gif:.snd foo foo
سيقوم بنسخ كل شيء من foo إلى foo.zip، ولكنه سيقوم بتخزين أي ملفات تنتهي بامتدادات .Z أو .zip أو .tiff أو .gif أو .snd دون محاولة ضغطها (غالبًا ما تحتوي ملفات الصور والصوت على طرق ضغط متخصصة خاصة بها). افتراضيًا، لا يقوم zip بضغط الملفات ذات الامتدادات الموجودة في القائمة .Z:.zip:.zoo:.arc:.lzh:.arj. يتم تخزين هذه الملفات مباشرة في الأرشيف الناتج. يمكن استخدام متغير البيئة ZIPOPT لتغيير الخيارات الافتراضية. على سبيل المثال، على أنظمة Unix باستخدام csh:
setenv ZIPOPT "-n .gif:.zip"
للمحاولة ضغط جميع الملفات، استخدم:
zip -n : foo
تُحاول خيار الضغط الأقصى -9 أيضًا ضغط جميع الملفات بغض النظر عن الامتداد.
على أنظمة Acorn RISC OS، تكون الامتدادات عبارة عن أنواع ملفات فعلية (بتنسيق 3 خانات ست عشرية). افتراضيًا، لا يقوم zip بضغط الملفات ذات أنواع الملفات الموجودة في القائمة DDC:D96:68E (أي الأرشيفات وملفات CFS وملفات PackDir).
-nw
--no-wild
لا تقم بإجراء معالجة الأحرف البدل الداخلية (تتم معالجة الأحرف البدل في shell حتى إذا لم يتم إلغاء وسائط الأوامر). مفيد إذا كانت تتم قراءة قائمة من المسارات ولا يلزم إجراء أي استبدال للأحرف البدل.
-N
--notes
[Amiga, MacOS] احفظ ملاحظات ملفات Amiga أو MacOS كتعليقات في ملف zip. يمكن استعادتها باستخدام الخيار -N في unzip. إذا تم استخدام -c أيضًا، فسيتم مطالبتك بالتعليقات فقط لتلك الملفات التي لا تحتوي على ملاحظات.
-o
--latest-time
قم بتعيين وقت "آخر تعديل" لملف zip إلى أحدث (أو الأقدم) وقت "آخر تعديل" تم العثور عليه بين الإدخالات الموجودة في ملف zip. يمكن استخدامه بدون أي عمليات أخرى، إذا رغبت في ذلك. على سبيل المثال:
zip -o foo
سيقوم بتغيير وقت "آخر تعديل" لـ foo.zip إلى أحدث وقت بين الإدخالات في foo.zip.
-O output-file
--output-file output-file
قم بمعالجة تغييرات الأرشيف كالمعتاد، ولكن بدلاً من تحديث الأرشيف الحالي، قم بإخراج الأرشيف الجديد إلى output-file. مفيد لتحديث الأرشيف دون تغيير الأرشيف الحالي ويجب أن يكون ملف الإدخال ملفًا مختلفًا عن ملف الإخراج.
يمكن استخدام هذا الخيار لإنشاء أرشيفات مقسمة محدثة. يمكن استخدامه أيضًا مع -U لنسخ الإدخالات من أرشيف موجود إلى أرشيف جديد. راجع قسم الأمثلة أدناه.
استخدام آخر هو تحويل ملفات ZIP من حجم تقسيم إلى آخر. على سبيل المثال، لتحويل أرشيف بأجزاء بحجم 700 ميجابايت (CD) إلى أرشيف بأجزاء بحجم 2 جيجابايت (DVD)، يمكن استخدام:
zip -s 2g cd-split.zip --out dvd-split.zip
والذي يستخدم وضع النسخ. انظر -U أدناه. أيضًا:
zip -s 0 split.zip --out unsplit.zip
سيقوم بتحويل أرشيف مقسم إلى أرشيف ملف واحد.
سيقوم وضع النسخ بتحويل إدخالات التدفق (باستخدام واصفات البيانات والتي يجب أن تكون متوافقة مع معظم برامج فك الضغط) إلى إدخالات عادية (والتي يجب أن تكون متوافقة مع جميع برامج فك الضغط)، باستثناء إذا تم استخدام التشفير القياسي. بالنسبة للأرشيفات ذات الإدخالات المشفرة، سيقوم zipcloak بفك تشفير الإدخالات وتحويلها إلى إدخالات عادية.
-p
--paths
قم بتضمين المسارات النسبية للملفات كجزء من أسماء الملفات المخزنة في الأرشيف. هذا هو الإعداد الافتراضي. يقوم الخيار -j بإلغاء المسارات ويخزن فقط أسماء الملفات.
-P password
--password password
استخدم كلمة المرور لتشفير إدخالات ملف ZIP (إن وجدت). هذا غير آمن! توفر العديد من أنظمة التشغيل متعددة المستخدمين طرقًا لأي مستخدم لرؤية سطر الأوامر الحالي لأي مستخدم آخر؛ حتى في الأنظمة المستقلة، هناك دائمًا خطر التجسس. تخزين كلمة المرور كنص عادي كجزء من سطر أوامر في برنامج نصي آلي هو أسوأ. كلما أمكن، استخدم المطالبة التفاعلية غير الصدى لإدخال كلمات المرور. (وحيث يكون الأمان مهمًا حقًا، استخدم تشفيرًا قويًا مثل Pretty Good Privacy بدلاً من التشفير القياسي الضعيف الذي توفره أدوات ملف ZIP).
-q
--quiet
وضع هادئ؛ قم بإلغاء الرسائل الإعلامية والمطالبات المتعلقة بالتعليقات. (مفيد، على سبيل المثال، في البرامج النصية والمهام الخلفية).
-Qn
--Q-flag n
[QDOS] قم بتخزين معلومات حول الملف في رأس الملف مع تحديد n كـ:
البت 0: لا تقم بإضافة رؤوس لأي ملف
البت 1: قم بإضافة رؤوس لجميع الملفات
البت 2: لا تنتظر ضغطة مفتاح تفاعلية عند الخروج
-r
--recurse-paths
تنقل عبر هيكل الدليل بشكل متكرر؛ على سبيل المثال:
zip -r foo.zip foo
أو بشكل أكثر إيجازًا:
zip -r foo foo
في هذه الحالة، يتم حفظ جميع الملفات والدلائل الموجودة في `foo` في أرشيف ZIP باسم `foo.zip`، بما في ذلك الملفات التي تبدأ أسماؤها بـ "."، نظرًا لأن التكرار لا يستخدم آلية استبدال أسماء الملفات في shell. إذا كنت ترغب في تضمين مجموعة فرعية محددة فقط من الملفات في الدليل `foo` ودلائله الفرعية، فاستخدم الخيار `-i` لتحديد نمط الملفات التي سيتم تضمينها. لا ينبغي عليك استخدام `-r` مع الاسم ".*"، لأنه يطابق ".. "، مما سيحاول أرشفة الدليل الأصل (والذي ربما لم يكن هذا هو المقصود).
تُسمح بمصادر دليل متعددة كما في:
zip -r foo foo1 foo2
والذي يقوم أولاً بأرشفة `foo1` ثم `foo2`، مع الانتقال إلى كل دليل.
لاحظ أنه في حين يتم حل أحرف البدل للخيار -r بشكل عام أثناء التكرار في الدلائل في نظام الملفات، يتم تطبيق أي أحرف بدل -R و-x و-i على مسارات الأرشيف الداخلية بمجرد فحص الدلائل. لجعل أحرف البدل تنطبق على الملفات في الدلائل الفرعية عند التكرار في أنظمة Unix المشابهة حيث يقوم shell باستبدال أحرف البدل، قم إما بإلغاء جميع أحرف البدل أو ضع جميع الوسيطات ذات أحرف البدل بين علامتي اقتباس. يتيح ذلك لـ zip رؤية أحرف البدل ومطابقة الملفات في الدلائل الفرعية باستخدامها أثناء التكرار.
-R
--recurse-patterns
يتصفح هيكل الدليل بشكل متكرر بدءًا من الدليل الحالي؛ على سبيل المثال:
zip -R foo "*.c"
في هذه الحالة، سيتم تخزين جميع الملفات التي تطابق \*.c في الشجرة التي تبدأ من الدليل الحالي في أرشيف مضغوط باسم foo.zip. لاحظ أن *.c ستطابق file.c و a/file.c و a/b/.c. يمكن إدراج أكثر من نمط كوسيطات منفصلة. ملاحظة لمستخدمي PKZIP: الأمر المكافئ هو
pkzip -rP foo *.c
الأنماط هي مسارات ملفات نسبية كما تظهر في الأرشيف، أو ستظهر بعد الضغط، ويمكن أن تحتوي على أحرف بدل اختيارية. على سبيل المثال، بالنظر إلى أن الدليل الحالي هو foo وتحت ذلك يوجد الدليلان foo1 و foo2 وفي foo1 يوجد الملف bar.c،
zip -R foo/*
سيقوم بضغط foo و foo/foo1 و foo/foo1/bar.c و foo/foo2.
zip -R */bar.c
سيقوم بضغط foo/foo1/bar.c. انظر الملاحظة الخاصة بـ -r حول إلغاء أحرف البدل.
-RE
--regex
[WIN32] قبل الإصدار 3.0 من zip، تم تمكين مطابقة قائمة التعبيرات العادية افتراضيًا على منصات Windows. نظرًا للارتباك الناتج عن الحاجة إلى إلغاء "[" و "]" في الأسماء، فقد تم تعطيلها افتراضيًا الآن لنظام التشغيل Windows بحيث تكون "[" و "]" مجرد أحرف عادية في الأسماء. يمكّن هذا الخيار المطابقة مرة أخرى.
-s splitsize
--split-size splitsize
يمكّن إنشاء أرشيف مقسم ويحدد حجم التقسيم. الأرشيف المقسم هو أرشيف يمكن تقسيمه إلى ملفات متعددة. أثناء إنشاء الأرشيف، إذا وصل حجم الأرشيف إلى حجم التقسيم المحدد، يتم إغلاق هذا التقسيم ويتم فتح التقسيم التالي. بشكل عام، ستكون جميع التقسيمات باستثناء الأخير بحجم التقسيم، وسيكون الأخير عبارة عن ما تبقى. إذا كان الأرشيف بأكمله أصغر من حجم التقسيم، يتم إنشاء أرشيف ملف واحد.
يتم تخزين الأرشيفات المقسمة في ملفات مرقمة. على سبيل المثال، إذا كان اسم الأرشيف هو archive ويتطلب ثلاثة تقسيمات، فسيكون الأرشيف الناتج في الملفات الثلاثة archive.z01 و archive.z02 و archive.zip. لا تغير ترقيم هذه الملفات وإلا فلن يكون الأرشيف قابلاً للقراءة حيث يتم استخدامها لتحديد الترتيب الذي تتم به قراءة التقسيمات.
حجم التقسيم هو رقم يتبعه اختياريًا مضاعف. حاليًا، يجب أن يكون الرقم عددًا صحيحًا. يمكن أن يكون المضاعف واحدًا من k (كيلو بايت) أو m (ميغا بايت) أو g (جيجا بايت) أو t (تيرابايت). نظرًا لأن الحد الأدنى لحجم التقسيم هو 64 كيلو بايت، فإن الأرقام بدون مضاعفات افتراضيًا تكون بالميغا بايت. على سبيل المثال، لإنشاء أرشيف مقسم يسمى foo يحتوي على محتويات دليل bar مع تقسيمات بحجم 670 ميغا بايت والتي قد تكون مفيدة لحرقها على أقراص CD، يمكن استخدام الأمر:
zip -s 670m -r foo bar
حاليًا، لا يتم استبعاد التقسيمات القديمة للأرشيف المقسم من أرشيف جديد، ولكن يمكن استبعادها على وجه التحديد. قدر الإمكان، حافظ على الأرشيفات المدخلة والمخرجة خارج المسار الذي يتم ضغطه عند إنشاء الأرشيفات المقسمة.
يؤدي استخدام -s بدون -sp كما هو موضح أعلاه إلى إنشاء جميع التقسيمات حيث يتم كتابة foo، وفي هذه الحالة، يكون ذلك هو الدليل الحالي. يقوم وضع التقسيم هذا بتحديث التقسيمات أثناء إنشاء الأرشيف، مما يتطلب أن تظل جميع التقسيمات قابلة للكتابة، ولكنه ينشئ أرشيفات مقسمة يمكن قراءتها بواسطة أي برنامج فك ضغط يدعم أرشيفات التقسيم. راجع -sp أدناه لتمكين وضع إيقاف التقسيم المؤقت، والذي يسمح بكتابة التقسيمات مباشرةً على وسائط قابلة للإزالة.
يمكن استخدام الخيار -sv لتمكين التقسيم المطوّل وتوفير تفاصيل حول كيفية إجراء التقسيم. يمكن استخدام الخيار -sb لإصدار صوت تنبيه عند توقف برنامج zip قبل وجهة التقسيم التالية.
لا يمكن تحديث أرشيفات التقسيم، ولكن راجع الخيار -O (--out) لمعرفة كيفية تحديث أرشيف مقسم أثناء نسخه إلى أرشيف جديد. يمكن أيضًا تحويل أرشيف مقسم إلى أرشيف ملف واحد باستخدام حجم تقسيم 0 أو عن طريق نفي الخيار -s:
zip -s 0 split.zip --out single.zip
راجع أيضًا -U` (--copy) لمزيد من المعلومات حول استخدام وضع النسخ.
-sb
--split-bell
إذا كان يتم إجراء التقسيم واستخدام وضع إيقاف التقسيم المؤقت، فقم بإصدار صوت تنبيه عندما يتوقف برنامج zip قبل كل وجهة تقسيم.
-sc
--show-command
اعرض سطر الأوامر الذي يبدأ به برنامج zip كما تتم معالجته، ثم اخرج. يقوم محلل الأوامر الجديد بترتيب الوسائط، ووضع جميع الخيارات وأي قيم مرتبطة بها قبل أي وسائط غير خيارات. يتيح ذلك ظهور الخيار في أي مكان في سطر الأوامر طالما أن أي قيم مرتبطة بالخيار تظهر معه. يعرض هذا الخيار سطر الأوامر كما يراه برنامج zip، بما في ذلك أي وسائط من البيئة مثل من متغير ZIPOPT. عند السماح بذلك، يمكن للخـيارات التي تظهر لاحقًا في سطر الأوامر أن تلغي الخيارات التي تظهر في وقت سابق في سطر الأوامر.
-sf
--show-files
اعرض الملفات التي سيتم العمل عليها، ثم اخرج. على سبيل المثال، إذا كنت تقوم بإنشاء أرشيف جديد، فسيتم سرد الملفات التي سيتم إضافتها. إذا تم نفي الخيار، -sf-، فقم بالإخراج فقط إلى ملف سجل مفتوح. لا يُنصح بعرض الشاشة للقوائم الكبيرة.
-so
--show-options
اعرض جميع الخيارات المتاحة التي يدعمها برنامج zip كما تم تجميعه على النظام الحالي. عند قراءة هذا الأمر لجدول الخيارات، يجب أن يتضمن جميع الخيارات. يتضمن كل سطر الخيار القصير (إذا تم تعريفه)، والخيار الطويل (إذا تم تعريفه)، وتنسيق أي قيمة مرتبطة بالخيار، وما إذا كان يمكن نفي الخيار، ووصفًا موجزًا. يمكن أن يكون تنسيق القيمة: لا توجد قيمة، أو قيمة مطلوبة، أو قيمة اختيارية، أو قيمة حرف واحد، أو قيمة رقمية، أو قائمة بالقيم. لا يهدف إخراج هذا الخيار إلى إظهار كيفية استخدام أي خيار، ولكن فقط إلى إظهار الخيارات المتاحة.
-sp
--split-pause
إذا تم تمكين التقسيم باستخدام -s، فقم بتمكين وضع إيقاف التقسيم المؤقت. يقوم هذا بإنشاء أرشيفات مقسمة كما يفعل -s، ولكن يتم استخدام الكتابة المتدفقة بحيث يمكن إغلاق كل تقسيم بمجرد كتابته وسيقوم برنامج zip بالتوقف بين كل تقسيم للسماح بتغيير وجهة التقسيم أو الوسائط.
-sp
--split-size size
يقسم الأرشيف إلى عدة ملفات، بحيث يكون حجم كل ملف هو "size". يمكن تحديد الحجم بوحدات مثل k (كيلوبايت)، m (ميغابايت)، g (غيغابايت)، أو t (تيرابايت). على سبيل المثال، "-sp 10m" سيقسم الأرشيف إلى ملفات بحجم 10 ميغابايت.
على الرغم من أن وضع التقسيم هذا يسمح بكتابة التقسيمات مباشرةً على وسائط قابلة للإزالة، إلا أنه يستخدم تنسيق أرشيف تدفق قد لا يكون قابلاً للقراءة بواسطة بعض برامج فك الضغط. قبل الاعتماد على التقسيمات التي تم إنشاؤها باستخدام "-sp"، اختبر أرشيف تقسيم باستخدام برنامج فك الضغط الذي ستستخدمه.
لتحويل أرشيف تقسيم تدفق (الذي تم إنشاؤه باستخدام "-sp") إلى أرشيف قياسي، انظر خيار "--out".
-su
--show-unicode
مثل "-sf"، ولكن أيضًا عرض إصدار Unicode من المسار إذا كان موجودًا.
-sU
--show-just-unicode
مثل "-sf"، ولكن يعرض فقط إصدار Unicode من المسار إذا كان موجودًا، وإلا فإنه يعرض الإصدار القياسي من المسار.
-sv
--split-verbose
تمكين رسائل تفصيلية مختلفة أثناء التقسيم، مما يوضح كيفية إجراء التقسيم.
-S
--system-hidden
[MSDOS، OS/2، WIN32 و ATARI] تضمين الملفات المخفية والنظام.
[MacOS] يتضمن ملفات Finder المخفية، والتي يتم تجاهلها بخلاف ذلك.
-t mmddyyyy
--from-date mmddyyyy
لا يتم إجراء أي عمليات على الملفات التي تم تعديلها قبل التاريخ المحدد، حيث يكون "mm" هو الشهر (00-12)، و "dd" هو يوم الشهر (01-31)، و "yyyy" هو السنة. يتم أيضًا قبول تنسيق التاريخ ISO 8601 وهو "yyyy-mm-dd". على سبيل المثال:
zip -rt 12071991 infamy foo
zip -rt 1991-12-07 infamy foo
سيضيف جميع الملفات في "foo" ومجلداته الفرعية التي تم تعديلها في أو بعد 7 ديسمبر 1991، إلى أرشيف "infamy.zip".
-tt mmddyyyy
--before-date mmddyyyy
لا يتم إجراء أي عمليات على الملفات التي تم تعديلها بعد أو في التاريخ المحدد، حيث يكون "mm" هو الشهر (00-12)، و "dd" هو يوم الشهر (01-31)، و "yyyy" هو السنة. يتم أيضًا قبول تنسيق التاريخ ISO 8601 وهو "yyyy-mm-dd". على سبيل المثال:
zip -rtt 11301995 infamy foo
zip -rtt 1995-11-30 infamy foo
سيضيف جميع الملفات في "foo" ومجلداته الفرعية التي تم تعديلها قبل 30 نوفمبر 1995، إلى أرشيف "infamy.zip".
-T
--test
اختبار سلامة ملف zip الجديد. إذا فشل الفحص، يبقى ملف zip القديم دون تغيير، ولا تتم إزالة أي ملفات إدخال (مع خيار "-m").
-TT cmd
--unzip-command cmd
استخدام الأمر "cmd" بدلاً من "unzip -tqq" لاختبار الأرشيف عند استخدام خيار "-T". على نظام Unix، لاستخدام نسخة من "unzip" في الدليل الحالي بدلاً من برنامج "unzip" القياسي للنظام، يمكن استخدام:
zip archive file1 file2 -T -TT "./unzip -tqq"
في "cmd"، يتم استبدال "{}" باسم الأرشيف المؤقت، وإلا فسيتم إلحاق اسم الأرشيف بنهاية الأمر. يتم التحقق من رمز الإرجاع للنجاح (0 على نظام Unix).
-u
--update
استبدال (تحديث) إدخال موجود في أرشيف zip فقط إذا تم تعديله مؤخرًا من الإصدار الموجود بالفعل في أرشيف zip. على سبيل المثال:
zip -u stuff *
سيضيف أي ملفات جديدة في الدليل الحالي، ويحدث أي ملفات تم تعديلها منذ إنشاء/تعديل أرشيف "stuff.zip" الأخير (لاحظ أن "zip" لن يحاول تجميع "stuff.zip" داخل نفسه عند القيام بذلك).
لاحظ أن خيار "-u" بدون وسائط ملفات إدخال يعمل مثل خيار "-f" (freshen).
-U
--copy-entries
انسخ الإدخالات من أرشيف إلى آخر. يتطلب الخيار `--out` لتحديد ملف إخراج مختلف عن ملف الإدخال. وضع النسخ هو عكس الخيار `-d` (حذف). عند استخدام خيار الحذف مع `--out`، يتم حذف الإدخالات المحددة من الأرشيف ويتم نسخ جميع الإدخالات الأخرى إلى الأرشيف الجديد، بينما يحدد وضع النسخ الملفات المراد تضمينها في الأرشيف الجديد. على عكس الخيار `-u` (تحديث)، تتم مطابقة أنماط الإدخال في سطر الأوامر مع إدخالات الأرشيف فقط وليس مع ملفات نظام الملفات. على سبيل المثال،
zip inarchive "*.c" --copy --out outarchive
ينسخ الإدخالات التي تنتهي أسماؤها بـ `.c` من `inarchive` إلى `outarchive`. يجب إلغاء رمز الأحرف الخاصة في بعض الأنظمة لمنع shell من استبدال أسماء الملفات من نظام الملفات والتي قد لا تكون ذات صلة بالإدخالات الموجودة في الأرشيف.
إذا لم تظهر أي ملفات إدخال في سطر الأوامر وتم استخدام `--out`، فسيتم افتراض وضع النسخ:
zip inarchive --out outarchive
هذا مفيد لتغيير حجم التقسيم على سبيل المثال. لا يتم دعم تشفير وفك تشفير الإدخالات باستخدام وضع النسخ. استخدم `zipcloak` لذلك.
-UN v
--unicode v
حدد ما الذي يجب أن يفعله zip مع أسماء الملفات Unicode. بالإضافة إلى مسار الملف القياسي، يتضمن zip 3.0 الآن ترجمة UTF-8 للمسار إذا لم يكن مسار الإدخال بالكامل ASCII ذو 7 بت. عند فقدان مسار Unicode للإدخال، يعود zip إلى استخدام مسار الملف القياسي. المشكلة في استخدام المسار القياسي هي أن هذا المسار موجود في مجموعة الأحرف المحلية لـ zip الذي قام بإنشاء الإدخال، والتي قد تحتوي على أحرف غير صالحة في مجموعة الأحرف المستخدمة بواسطة unzip. عند قراءة zip للأرشيف، إذا كان الإدخال يحتوي أيضًا على مسار Unicode، فإن zip الآن افتراضيًا يستخدم مسار Unicode لإعادة إنشاء المسار القياسي باستخدام مجموعة الأحرف المحلية الحالية.
يمكن استخدام هذا الخيار لتحديد ما الذي يجب أن يفعله zip بهذا المسار إذا كان هناك عدم تطابق بين المسار القياسي المخزن ومسار UTF-8 المخزن (والذي يمكن أن يحدث إذا تم تحديث المسار القياسي). في جميع الحالات، إذا كان هناك عدم تطابق، فسيتم افتراض أن المسار القياسي هو الأحدث ويستخدم zip هذا. القيم لـ `v` هي:
q - إنهاء إذا كانت المسارات لا تتطابق
w - تحذير، المتابعة باستخدام المسار القياسي
i - تجاهل، المتابعة باستخدام المسار القياسي
n - لا يوجد Unicode، لا تستخدم مسارات Unicode
القيمة الافتراضية هي التحذير والمتابعة.
يتم تضمين الأحرف غير الصالحة في مجموعة الأحرف الحالية كـ `\#Uxxxx` و `#Lxxxxxx`، حيث `x` هي حرف ASCII للرقم الست عشري. يتم استخدام الأول إذا كان رقم Unicode المكون من 16 بت كافيًا لتمثيل حرف Unicode، ويتم استخدام الثاني إذا كان الحرف يحتاج إلى أكثر من 16 بت لتمثيل رمز حرف Unicode الخاص به. يؤدي تعيين `-UN` إلى
e - escape
كما في
zip archive -sU -UN=e
يجبر zip على تضمين جميع الأحرف التي ليست قابلة للطباعة ASCII ذات 7 بت.
عادةً ما يقوم zip بتخزين UTF-8 مباشرةً في حقل المسار القياسي على الأنظمة التي يكون فيها UTF-8 هي مجموعة الأحرف الحالية ويقوم بتخزين UTF-8 في الحقول الإضافية الجديدة بخلاف ذلك. الخيار هو:
u - UTF-8
كما في
zip archive dir -r -UN=UTF8
يجبر برنامج zip على تخزين UTF-8 كإعداد أصلي في الأرشيف. لاحظ أن تخزين UTF-8 مباشرة هو الإعداد الافتراضي على أنظمة Unix التي تدعمه. يمكن أن يكون هذا الخيار مفيدًا على أنظمة Windows حيث يكون المسار الذي تم ترميزه كبيرًا جدًا بحيث لا يكون مسارًا صالحًا، وإصدار UTF-8 من المسار أصغر، ولكن UTF-8 الأصلي غير متوافق مع الإصدارات السابقة على أنظمة Windows.
-v
--verbose
وضع الإسهاب أو طباعة معلومات تشخيصية حول الإصدار.
عادةً، عند تطبيقه على عمليات حقيقية، يمكّن هذا الخيار عرض مؤشر التقدم أثناء الضغط (راجع -dd للحصول على مزيد من المعلومات حول النقاط) ويطلب معلومات تشخيصية مفصلة حول غرائب هيكل ملف zip.
ومع ذلك، عندما يكون -v هو وسيطة سطر الأوامر الوحيدة، يتم عرض شاشة تشخيصية بدلاً من ذلك. يجب أن يعمل هذا الآن حتى إذا تم إعادة توجيه stdout إلى ملف، مما يسمح بحفظ المعلومات بسهولة لإرسالها مع تقارير الأخطاء إلى Info-ZIP. توفر شاشة الإصدار عنوان شاشة المساعدة باسم البرنامج والإصدار وتاريخ الإصدار، وبعض المؤشرات إلى موقع Info-ZIP الرئيسي ومواقع التوزيع، وتعرض معلومات حول البيئة المستهدفة (نوع وإصدار المترجم، وإصدار نظام التشغيل، وتاريخ التجميع والميزات الاختيارية الممكنة المستخدمة لإنشاء ملف zip القابل للتنفيذ).
-V
--VMS-portable
[VMS] احفظ سمات ملفات VMS. (يتم اقتطاع الملفات عند نهاية الملف). عند فك ضغط أرشيف -V على نظام غير VMS، يجب استخراج بعض أنواع الملفات (خاصة ملفات Stream_LF النصية والملفات الثنائية النقية مثل fixed-512) سليمة. قد تظهر الملفات المفهرسة وأنواع الملفات ذات أحجام السجلات المضمنة (خاصة أنواع السجلات ذات الطول المتغير) تالفة في مكان آخر.
-VV
--VMS-specific
[VMS] احفظ سمات ملفات VMS، وجميع الكتل المخصصة في ملف، بما في ذلك أي بيانات تتجاوز نهاية الملف. مفيد لنقل الملفات غير الصحيحة بين أنظمة VMS. عند فك ضغط أرشيف -VV على نظام غير VMS، ستظهر معظم الملفات تالفة.
-w
--VMS-versions
[VMS] ألحق رقم إصدار الملفات بالاسم، بما في ذلك إصدارات متعددة من الملفات. الإعداد الافتراضي هو استخدام أحدث إصدار من الملف المحدد فقط.
-ww
--VMS-dot-versions
[VMS] ألحق رقم إصدار الملفات بالاسم، بما في ذلك إصدارات متعددة من الملفات، باستخدام تنسيق .nnn. الإعداد الافتراضي هو استخدام أحدث إصدار من الملف المحدد فقط.
-ws
--wild-stop-dirs
تطابق الأحرف البديلة فقط على مستوى الدليل. عادةً، يتعامل برنامج zip مع المسارات كسلاسل، ومع المسارات
/foo/bar/dir/file1.c
/foo/bar/file2.c
عادةً ما يطابق النمط
/foo/bar/*
كلا المسارين، حيث يطابق * dir/file1.c و file2.c. لاحظ أنه في الحالة الأولى، تم تجاوز حد الدليل (/) في المطابقة. مع تمكين -ws، لن يتم تضمين حدود الدليل في المطابقة، مما يجعل الأحرف البديلة محلية لمستوى دليل معين. لذلك، مع تمكين -ws، سيتم مطابقة المسار الثاني فقط.
عند استخدام -ws، استخدم ** للمطابقة عبر حدود الدليل كما تفعل * بشكل طبيعي.
-x files
--exclude files
استبعد الملفات المحددة بشكل صريح، كما في:
zip -r foo foo -x \*.o
والذي سيتضمن محتويات foo في foo.zip مع استبعاد جميع الملفات التي تنتهي بـ .o. يمنع الشرطة المائلة العكسية (\) استبدال اسم الملف بواسطة الصدفة، بحيث يتم إجراء مطابقة الاسم بواسطة zip في جميع مستويات الدليل.
أيضًا، من الممكن:
zip -r foo foo -_
والذي سيتضمن محتويات foo في foo.zip مع استبعاد جميع الملفات التي تطابق الأنماط الموجودة في الملف exclude.lst.
الأشكال الطويلة للخيارات أعلاه هي:
zip -r foo foo --exclude \*.o
و
zip -r foo foo --exclude @exclude.lst
يمكن تحديد أنماط متعددة، كما في:
zip -r foo foo -x \*.o \*.c
إذا لم تكن هناك مسافة بين -x والنمط، فسيتم افتراض قيمة واحدة فقط (ليست قائمة):
zip -r foo foo -x\*.o
راجع -i لمزيد من المعلومات حول التضمين والاستبعاد.
-X
--no-extra
لا تقم بحفظ سمات الملفات الإضافية (السمات الممتدة على نظام التشغيل OS/2، ومعرف المستخدم/معرف المجموعة وأوقات الملفات على نظام التشغيل Unix). يستخدم تنسيق zip حقولًا إضافية لتضمين معلومات إضافية لكل إدخال. بعض الحقول الإضافية خاصة بأنظمة معينة في حين أن بعضها الآخر قابلة للتطبيق على جميع الأنظمة. عادةً، عندما يقرأ zip الإدخالات من الأرشيف الموجود، فإنه يقرأ الحقول الإضافية التي يعرفها، ويزيل الباقي، ويضيف الحقول الإضافية القابلة للتطبيق على هذا النظام. باستخدام -X، يزيل zip جميع الحقول القديمة ويتضمن فقط حقول Unicode و Zip64 الإضافية (لا يمكن تعطيل هذين الحقلين الإضافيين حاليًا).
عند إلغاء هذا الخيار، -X-، يتم تضمين جميع الحقول الإضافية الافتراضية، ولكن يتم أيضًا نسخ أي حقول إضافية غير معروفة.
-y
--symlinks
بالنسبة لأنظمة UNIX و VMS (الإصدار 8.3 والإصدارات الأحدث)، قم بتخزين الروابط الرمزية على هذا النحو في أرشيف zip، بدلاً من ضغط الملف الذي يشير إليه الارتباط وتخزينه. يمكن أن يؤدي ذلك إلى تجنب تضمين نسخ متعددة من الملفات في الأرشيف عندما يتكرر zip عبر هياكل الدليل ويصل إلى الملفات مباشرةً و عن طريق الروابط.
-z
--archive-comment
اطلب تعليقًا متعدد الأسطر للأرشيف zip بأكمله. ينتهي التعليق بسطر يحتوي فقط على نقطة، أو حالة نهاية الملف (^D على نظام التشغيل Unix، و ^Z على نظامي التشغيل MSDOS و OS/2 و VMS). يمكن أخذ التعليق من ملف:
zip -z foo < foowhat
-Z cm
--compression-method cm
اضبط طريقة الضغط الافتراضية. حاليًا، الطرق الرئيسية المدعومة بواسطة zip هي التخزين و deflate. يمكن ضبط طريقة الضغط على:
store - يؤدي ضبط طريقة الضغط على التخزين إلى إجبار zip على تخزين الإدخالات بدون ضغط. يكون هذا بشكل عام أسرع من ضغط الإدخالات، ولكنه لا يوفر أي مساحة. هذا هو نفسه استخدام -0 (مستوى الضغط صفر).
deflate - هذه هي الطريقة الافتراضية لـ zip. إذا حدد zip أن التخزين أفضل من الضغط، فسيتم تخزين الإدخال بدلاً من ذلك.
bzip2 - إذا تم تجميع دعم bzip2، تصبح طريقة الضغط هذه متاحة أيضًا. لا تدعم بعض أدوات فك الضغط الحديثة طريقة ضغط bzip2، لذا اختبر أداة فك الضغط التي ستستخدمها قبل الاعتماد على الأرشيفات التي تستخدم هذه الطريقة (طريقة الضغط 12).
على سبيل المثال، لإضافة الملف bar.c إلى الأرشيف foo باستخدام ضغط bzip2:
zip -Z bzip2 foo bar.c
يمكن اختصار طريقة الضغط:
zip -Zb foo bar.c
-#
(-0, -1, -2, -3, -4, -5, -6, -7, -8, -9)
تنظيم سرعة الضغط باستخدام الرقم المحدد \#، حيث يشير -0 إلى عدم الضغط (تخزين جميع الملفات)، ويشير -1 إلى أسرع سرعة للضغط (ضغط أقل)، ويشير -9 إلى أبطأ سرعة للضغط (أفضل ضغط، ويتجاهل قائمة اللاحقات). سرعة الضغط الافتراضية هي -6.
على الرغم من أن هذا لا يزال قيد العمل، إلا أن الهدف هو أن يتحكم هذا الإعداد في سرعة الضغط لجميع طرق الضغط. حاليًا، يتم التحكم فقط في طريقة الضغط deflation.
-!
--use-privileges
[WIN32] استخدم الامتيازات (إذا تم منحها) للحصول على جميع جوانب أمان WinNT.
-@
--names-stdin
خذ قائمة ملفات الإدخال من الإدخال القياسي. ملف واحد لكل سطر.
-$
--volume-label
[MSDOS، OS/2، WIN32] قم بتضمين تسمية وحدة التخزين للقرص الذي يحتوي على أول ملف سيتم ضغطه. إذا كنت تريد تضمين تسمية وحدة التخزين فقط أو لفرض قرص معين، فاستخدم اسم القرص كاسم الملف الأول، كما في:
zip -$ foo a: c:bar
أمثلة
أبسط مثال:
zip stuff *
ينشئ الأرشيف stuff.zip (بافتراض أنه لا يوجد بالفعل) ويضع جميع الملفات في الدليل الحالي فيه، في شكل مضغوط (يتم إضافة لاحقة .zip تلقائيًا، ما لم يحتوي اسم الأرشيف على نقطة بالفعل؛ وهذا يسمح بتحديد لاحقات أخرى بشكل صريح).
نظرًا لطريقة عمل shell على Unix في استبدال أسماء الملفات، لا يتم تضمين الملفات التي تبدأ بـ "."؛ لتضمين هذه أيضًا:
zip stuff .* *
حتى هذا لن يتضمن أي مجلدات فرعية من الدليل الحالي.
لضغط دليل بأكمله، استخدم الأمر:
zip -r foo foo
ينشئ الأرشيف foo.zip، الذي يحتوي على جميع الملفات والمجلدات في الدليل foo الموجود داخل الدليل الحالي.
قد ترغب في إنشاء أرشيف zip يحتوي على الملفات الموجودة في foo، دون تسجيل اسم الدليل، foo. يمكنك استخدام الخيار -j لإيقاف تضمين المسارات، كما في:
zip -j foo foo/*
إذا كنت تعاني من نقص في مساحة القرص، فقد لا يكون لديك مساحة كافية لاحتواء كل من الدليل الأصلي وأرشيف zip المضغوط المقابل. في هذه الحالة، يمكنك إنشاء الأرشيف على مراحل باستخدام الخيار -m. إذا كان foo يحتوي على المجلدات الفرعية tom و dick و harry، فيمكنك:
zip -rm foo foo/tom
zip -rm foo foo/dick
zip -rm foo foo/harry
حيث يقوم الأمر الأول بإنشاء foo.zip، ويضيف الأمران التاليان إليه. في نهاية كل أمر zip، يتم حذف الأرشيف الأخير الذي تم إنشاؤه، مما يفسح المجال لعمل الأمر التالي.
استخدم -s لتعيين حجم التقسيم وإنشاء أرشيف مقسم. يتم إعطاء الحجم كرقم متبوعًا اختياريًا بواحد من k (كيلو بايت)، أو m (ميجابايت)، أو g (جيجابايت)، أو t (تيرابايت). الأمر هو:
zip -s 2g -r split.zip foo
يقوم بإنشاء أرشيف مقسم للدليل `foo` بحيث لا يتجاوز حجم كل جزء 2 جيجابايت. إذا كان الدليل `foo` يحتوي على 5 جيجابايت من المحتوى وتم تخزين هذا المحتوى في الأرشيف المقسم بدون ضغط (لتبسيط هذا المثال)، فسيتم إنشاء ثلاثة أجزاء: `split.z01` بحجم 2 جيجابايت، و `split.z02` بحجم 2 جيجابايت، و `split.zip` بحجم يزيد قليلاً عن 1 جيجابايت.
يمكن استخدام الخيار -sp لإيقاف تشغيل zip مؤقتًا بين الأجزاء للسماح بتغيير وسائط التخزين القابلة للإزالة، على سبيل المثال، ولكن اقرأ الأوصاف والتحذيرات لكل من -s و -sp أدناه.
على الرغم من أن برنامج zip لا يقوم بتحديث الأرشيفات المقسمة، إلا أنه يوفر الخيار الجديد -O (أو --output-file) للسماح بتحديث الأرشيفات المقسمة وحفظها في أرشيف جديد. على سبيل المثال:
zip inarchive.zip foo.c bar.c --out outarchive.zip
يقرأ الأرشيف `inarchive.zip`، حتى لو كان مقسمًا، ويضيف الملفين `foo.c` و `bar.c`، ويكتب الأرشيف الناتج إلى `outarchive.zip`. إذا كان `inarchive.zip` مقسمًا، فسيكون حجم الأجزاء في `outarchive.zip` افتراضيًا هو نفس حجم الأجزاء الأصلية. كن على علم بأن `outarchive.zip` وأي ملفات مقسمة يتم إنشاؤها معه يتم الكتابة فوقها دائمًا دون تحذير. قد يتم تغيير هذا في المستقبل.
مطابقة الأنماط
ينطبق هذا القسم فقط على أنظمة Unix. سيتم إضافة تفاصيل حول أنظمة MSDOS و VMS في وقت لاحق.
ومع ذلك، تنطبق أحرف البدل الخاصة * و [] أدناه على الأقل على أنظمة MSDOS أيضًا.
تقوم أنظمة تشغيل Unix (مثل sh و csh و bash وغيرها) عادةً بإجراء استبدال أسماء الملفات (يُعرف أيضًا باسم "globbing") على وسائط الأوامر. بشكل عام، الأحرف الخاصة هي:
? يطابق أي حرف واحد
* يطابق أي عدد من الأحرف (بما في ذلك لا شيء)
[] يطابق أي حرف في النطاق المحدد داخل الأقواس (على سبيل المثال: `[a-f]`، `[0-9]`).
تتيح هذه الطريقة من أحرف البدل للمستخدم تحديد قائمة بالأحرف بين الأقواس المربعة، وإذا تطابق أي من الأحرف مع التعبير، فسيتم اعتبار التعبير مطابقًا. على سبيل المثال:
zip archive "*.[hc]"
سيؤرشف جميع الملفات في الدليل الحالي التي تنتهي بـ `.h` أو `.c`.
يتم دعم نطاقات الأحرف:
zip archive "[a-f]*"
سيضيف إلى الأرشيف جميع الملفات التي تبدأ بالحروف من "a" إلى "f".
يتم دعم النفي أيضًا، حيث يطابق أي حرف في هذا الموضع غير موجود في القائمة. يتم دعم النفي عن طريق إضافة ! أو ^ إلى بداية القائمة:
zip archive "*.[!o]"
يطابق الملفات التي لا تنتهي بـ `.o`.
على أنظمة WIN32، يجب تشغيل مطابقة الأقواس المربعة باستخدام الخيار -RE لتجنب الالتباس الذي تسببه الأسماء التي تحتوي على [ أو ].
عندما يتم مواجهة هذه الأحرف (دون إلغاء تأثيرها باستخدام شرطة مائلة للخلف أو علامات الاقتباس)، سيبحث النظام عن ملفات موجودة في المسار الحالي والتي تطابق النمط، وسيتم استبدال الوسيط بقائمة بالأسماء التي تطابق.
يمكن لبرنامج zip أيضًا إجراء نفس المطابقة على الأسماء الموجودة في أرشيف zip الذي يتم تعديله، أو في حالة الخيارات -x (استبعاد) أو -i (تضمين)، على قائمة الملفات التي سيتم إجراء العمل عليها، وذلك باستخدام شرطة مائلة للخلف أو علامات الاقتباس لإخبار النظام بعدم إجراء توسيع الاسم. بشكل عام، عندما يواجه برنامج zip اسمًا في قائمة الملفات التي سيتم إجراء العمل عليها، فإنه يبحث أولاً عن الاسم في نظام الملفات. إذا وجده، فإنه يضيفه إلى قائمة الملفات التي سيتم إجراء العمل عليها. إذا لم يجده، فإنه يبحث عن الاسم في أرشيف zip الذي يتم تعديله (إذا كان موجودًا)، باستخدام أحرف البدل الموصوفة أعلاه، إذا كانت موجودة. لكل تطابق، سيضيف هذا الاسم إلى قائمة الملفات التي سيتم معالجتها، ما لم يتطابق هذا الاسم مع أحد الأسماء المعطاة باستخدام الخيار -x، أو لا يتطابق مع أي اسم معطى باستخدام الخيار -i.
يتضمن مطابقة الأنماط المسار، لذا تطابق الأنماط مثل `\\*.o` الأسماء التي تنتهي بـ ".o"، بغض النظر عن بادئة المسار. لاحظ أنه يجب أن يسبق الشرطة المائلة العكسية كل حرف خاص (أي `?*[]`)، أو يجب إحاطة الوسيطة بأكملها بعلامات اقتباس مزدوجة ("").
بشكل عام، استخدم الشرطات المائلة العكسية أو علامات الاقتباس المزدوجة للمسارات التي تحتوي على أحرف بدل لجعل zip يقوم بمطابقة الأنماط لمسارات الملفات، ودائمًا للمسارات والسلاسل التي تحتوي على مسافات أو أحرف بدل لـ -i و -x و -R و -d و -U وأي مكان تحتاج فيه zip إلى معالجة الأحرف البديلة.
البيئة
يقرأ متغيرات البيئة التالية ويستخدمها zip كما هو موضح.
ZIPOPT
يحتوي على خيارات افتراضية سيتم استخدامها عند تشغيل zip. سيتم إضافة محتويات متغير البيئة هذا إلى سطر الأوامر مباشرة بعد أمر zip.
ZIP
[غير متوفر على RISC OS و VMS] انظر ZIPOPT
Zip$Options
[RISC OS] انظر ZIPOPT
Zip$Exts
[RISC OS] يحتوي على امتدادات مفصولة بـ `:` مما يتسبب في إضافة أسماء الملفات الأصلية التي تحتوي على أحد الامتدادات المحددة إلى ملف zip مع تبديل اسم الملف وامتداده.
ZIP_OPTS
[VMS] انظر ZIPOPT
انظر أيضًا
compress(1)، shar(1)، tar(1)، unzip(1)، gzip(1)
تشخيص الأعطال
يمثل رمز الخروج (أو مستوى الخطأ) رموز الخروج المحددة بواسطة PKWARE ويأخذ القيم التالية، باستثناء VMS:
0 طبيعي؛ لم يتم اكتشاف أي أخطاء أو تحذيرات.
2 نهاية غير متوقعة لملف zip.
3 تم اكتشاف خطأ عام في تنسيق ملف zip. قد يكون المعالجة قد اكتملت بنجاح على أي حال؛ بعض ملفات zip المعطوبة التي تم إنشاؤها بواسطة أدوات أرشيف أخرى لها حلول بسيطة.
4 لم يتمكن zip من تخصيص ذاكرة لأحد المخازن المؤقتة أو أكثر أثناء تهيئة البرنامج.
5 تم اكتشاف خطأ خطير في تنسيق ملف zip. ربما فشلت المعالجة على الفور.
6 الإدخال كبير جدًا بحيث لا يمكن معالجته (مثل ملفات الإدخال الأكبر من 2 جيجابايت عند عدم استخدام Zip64 أو محاولة قراءة أرشيف موجود كبير جدًا) أو الإدخال كبير جدًا بحيث لا يمكن تقسيمه باستخدام zipsplit
7 تنسيق تعليق غير صالح
8 فشل zip -T أو نفاد الذاكرة
9 ألغى المستخدم تشغيل zip مبكرًا باستخدام Ctrl+C (أو ما شابه ذلك)
10 واجه zip خطأ أثناء استخدام ملف مؤقت
11 خطأ في القراءة أو البحث
12 ملف zip غير موجود أو فارغ.
13 خطأ في الكتابة إلى ملف.
14 لم يتمكن zip من إنشاء ملف للكتابة إليه.
15 معلمات سطر الأوامر غير صحيحة.
18 لم يتمكن zip من فتح ملف محدد للقراءة.
19 تم تجميع zip بخيارات غير مدعومة على هذا النظام.
تقوم VMS بترجمة قيم الإرجاع القياسية في Unix (أو PC) إلى أشياء أخرى ذات مظهر أكثر إثارة للقلق، لذلك يقوم zip بدلاً من ذلك بتعيينها إلى رموز حالة على غرار VMS. بشكل عام، يقوم zip بتعيين Facility = 1955 (0x07A3)، و Code = 2 * Unix_status، بالإضافة إلى مستوى خطورة مناسب (كما هو محدد في ziperr.h). توجد تفاصيل إضافية في الوثائق الخاصة بنظام VMS. راجع [.vms]NOTES.TXT و [.vms]vms_msg_gen.c.
الأخطاء
zip 3.0 غير متوافق مع PKUNZIP 1.10. استخدم zip 1.1 لإنشاء ملفات zip يمكن استخراجها بواسطة PKUNZIP 1.10.
يجب ألا يتم تحديث ملفات zip التي تم إنشاؤها بواسطة zip 3.0 بواسطة zip 1.1 أو PKZIP 1.10، إذا كانت تحتوي على أعضاء مشفرة أو إذا تم إنشاؤها في قناة أو على جهاز غير قابل للبحث فيه. ستنشئ الإصدارات القديمة من zip أو PKZIP أرشيفًا بتنسيق غير صحيح. يمكن للإصدارات القديمة سرد محتويات ملف zip ولكنها لا يمكنها استخراجه على أي حال (بسبب خوارزمية الضغط الجديدة). إذا كنت لا تستخدم التشفير وتستخدم ملفات الأقراص العادية، فلا داعي للقلق بشأن هذه المشكلة.
في نظام VMS، لا تتم معالجة جميع تنسيقات الملفات الغريبة بشكل صحيح. من المتوقع أن تعمل ملفات zip بتنسيق stream-LF فقط مع zip. يمكن تحويل التنسيقات الأخرى باستخدام برنامج BILF الخاص بـ Rahul Dhesi. يتعامل هذا الإصدار من zip مع بعض التحويلات داخليًا. عند استخدام Kermit لنقل ملفات zip من VMS إلى MSDOS، اكتب "set file type block" على VMS. عند النقل من MSDOS إلى VMS، اكتب "set file type fixed" على VMS. في كلتا الحالتين، اكتب "set file type binary" على MSDOS.
في بعض إصدارات VMS القديمة، قد يتوقف zip عن العمل بالنسبة لمواصفات الملفات التي تستخدم صيغة DECnet، على سبيل المثال foo::*.
في نظام OS/2، لا يمكن لـ zip مطابقة بعض الأسماء، مثل تلك التي تتضمن علامة تعجب أو علامة هاش. هذا خطأ في OS/2 نفسه: لا تجد DosFindFirst/Next ذات 32 بت هذه الأسماء. تتأثر برامج أخرى مثل GNU tar بهذا الخطأ.
في نظام OS/2، فإن كمية السمات الممتدة المعروضة بواسطة DIR هي (للتوافق) الكمية التي يتم إرجاعها بواسطة الإصدار ذي 16 بت من DosQueryPathInfo (). وإلا، فإن OS/2 1.3 و 2.0 سيعرضان أحجام EA مختلفة عند عرض ملف باستخدام DIR. ومع ذلك، فإن تخطيط البنية الذي يتم إرجاعه بواسطة DosQueryPathInfo ذي 32 بت مختلف قليلاً، فهو يستخدم بايتات حشو إضافية ومؤشرات ارتباط (إنها قائمة مرتبطة) ليكون لجميع الحقول حدود 4 بايت من أجل قابلية النقل إلى إصدارات OS/2 المستقبلية. لذلك، فإن القيمة التي يتم الإبلاغ عنها بواسطة zip (والتي تستخدم تنسيق 32 بت) تختلف عن تلك التي يتم الإبلاغ عنها بواسطة DIR. يقوم zip بتخزين التنسيق ذي 32 بت من أجل قابلية النقل، حتى الإصدار المترجم بلغة MS-C ذي 16 بت الذي يعمل على نظام OS/2 1.3، لذلك يعرض هذا الإصدار أيضًا الحجم ذي 32 بت.
المؤلفون
حقوق الطبع والنشر (ج) 1997-2008 Info-ZIP.
يتم توزيعه حاليًا بموجب ترخيص Info-ZIP.
حقوق الطبع والنشر (ج) 1990-1997 مارك أدلر، ريتشارد ب. ويلز، جان لوب غايلي، أونو فان دير ليندن، كاي أووي روميل، إيغور ماندريتشينكو، جون بوش وبول كينيتز.
حقوق الطبع والنشر الأصلية:
يُمنح الإذن لأي فرد أو مؤسسة لاستخدام أو نسخ أو توزيع هذا البرنامج طالما تم تضمين جميع الملفات الأصلية، وأنه لا يتم بيعه لتحقيق الربح، وأنه يتم الاحتفاظ بإشعار حقوق الطبع والنشر هذا.
مثل أي شيء آخر مجاني، يتم توفير ZIP والأدوات المرتبطة به "كما هو" ويأتي بدون أي ضمان من أي نوع، سواء كان صريحًا أو ضمنيًا. لن يكون حاملو حقوق الطبع والنشر مسؤولين عن أي أضرار ناتجة عن استخدام هذا البرنامج.
يرجى إرسال تقارير الأخطاء والتعليقات باستخدام صفحة الويب على: www.info-zip.org. لتقارير الأخطاء، يرجى تضمين إصدار zip (انظر zip -h)، وخيارات الإنشاء المستخدمة لتجميعه (انظر zip -v)، والجهاز ونظام التشغيل المستخدم، وأكبر قدر ممكن من المعلومات الإضافية.
الشكر والتقدير
شكرًا لـ R. P. Byrne على برنامج Shrink.Pas الخاص به، الذي ألهم هذا المشروع، والذي تم "سرقة" خوارزمية الضغط منه؛ وإلى فيل كاتز لوضعه تنسيق ملف zip، وتنسيق الضغط، وامتداد اسم الملف .ZIP في المجال العام، ولتقبله تغييرات طفيفة على تنسيق الملف؛ وإلى ستيف بورغ للحصول على توضيحات حول تنسيق deflate؛ وإلى هاروهيكو أوكومورا وليونيد بروخيس لتقديمهما بعض الأفكار المفيدة لخوارزمية الضغط؛ وإلى كيث بيترسون، وريتش ويلز، وهنتر غوتلي، ومارك أدلر لتوفير قائمة بريدية وموقع ftp لمجموعة Info-ZIP لاستخدامه؛ والأهم من ذلك، إلى مجموعة Info-ZIP نفسها (المدرجة في الملف infozip.who) بدون جهودها الدؤوبة في الاختبار وإصلاح الأخطاء، لما كان من الممكن أن يكون هناك برنامج zip محمول. أخيرًا، يجب أن نشكر (نلوم) المشرف الأول في Info-ZIP، ديفيد كيرشباوم، لجعله ينخرط في هذا الأمر في المقام الأول. تمت إعادة كتابة صفحة الدليل لوحدات Unix بواسطة R. P. C. Rodgers وتم تحديثها بواسطة E. Gordon لـ zip 3.0.