كتيبات سطر الأوامر

Man » دليل unzip عبر الإنترنت - وثائق مفصلة عبر الإنترنت لصفحة دليل unzip

🌍
unzip - لعرض، واختبار، واستخراج الملفات المضغوطة في أرشيف ZIP

الملخص

unzip [علامات] [ملف(.zip)] [ملف(أو ملفات)...] [-x ملف(أو ملفات) مستبعدة...] [-d دليل_الاستخراج]

الوصف

يقوم unzip بعرض أو اختبار أو استخراج الملفات من أرشيف ZIP، والذي يوجد عادةً على أنظمة MS-DOS. السلوك الافتراضي (بدون خيارات) هو استخراج جميع الملفات من أرشيف ZIP المحدد إلى الدليل الحالي (والأدلة الفرعية الموجودة تحته). برنامج مصاحب، [zip]({filename}../../zip)(1)، يقوم بإنشاء أرشيفات ZIP؛ تتوافق كلا البرنامجين مع الأرشيفات التي تم إنشاؤها بواسطة PKWARE's PKZIP و PKUNZIP لنظام MS-DOS، ولكن في كثير من الحالات، تختلف خيارات البرنامج أو السلوك الافتراضي.

الوسائط

ملف[.zip]
مسار أرشيف ZIP. إذا كان تحديد الملف عبارة عن حرف بدل، فسيتم معالجة كل ملف مطابق بترتيب تحدده نظام التشغيل (أو نظام الملفات). يمكن أن يكون اسم الملف فقط هو حرف البدل؛ لا يمكن أن يكون المسار نفسه حرف بدل. تشبه تعبيرات الأحرف البدل تلك المدعومة في أنظمة Unix الشائعة (sh، ksh، csh) ويمكن أن تحتوي على:

*   يطابق سلسلة من 0 أو أكثر من الأحرف

؟   يطابق حرفًا واحدًا بالضبط

[...]   يطابق أي حرف واحد موجود داخل الأقواس؛ يتم تحديد النطاقات عن طريق حرف البداية وشرطة ورمز النهاية. إذا تبع علامة التعجب أو علامة الإقحام (``!' أو ``^') القوس الأيسر، فسيتم استكمال نطاق الأحرف داخل الأقواس (أي، يعتبر أي شيء باستثناء الأحرف الموجودة داخل الأقواس مطابقًا). لتحديد قوس أيسر حرفي، يجب استخدام التسلسل المكون من ثلاثة أحرف ``[[]''.

(تأكد من وضع علامة اقتباس على أي حرف قد يتم تفسيره أو تعديله بواسطة نظام التشغيل، خاصةً في أنظمة Unix و VMS). إذا لم يتم العثور على أي تطابقات، فسيتم افتراض أن التحديد عبارة عن اسم ملف حرفي؛ وإذا فشل ذلك أيضًا، فسيتم إلحاق اللاحقة .zip. لاحظ أن ملفات ZIP ذاتية الاستخراج مدعومة، مثل أي أرشيف ZIP آخر؛ ما عليك سوى تحديد اللاحقة .exe (إن وجدت) بشكل صريح.

[ملف(أو ملفات)]
قائمة اختيارية من عناصر الأرشيف المراد معالجتها، مفصولة بمسافات. (يجب أن تحدد إصدارات VMS التي تم تجميعها باستخدام VMSCLI المعرفة الملفات باستخدام الفواصل بدلاً من ذلك. انظر الخيار -v في الخيارات أدناه). يمكن استخدام التعبيرات العادية (الأحرف البدل) لمطابقة عناصر متعددة؛ انظر أعلاه. مرة أخرى، تأكد من وضع علامة اقتباس على التعبيرات التي سيتم توسيعها أو تعديلها بواسطة نظام التشغيل.

[-x ملف(أو ملفات) مستبعدة]
قائمة اختيارية من عناصر الأرشيف المراد استبعادها من المعالجة. نظرًا لأن الأحرف البدل تطابق عادةً الفواصل (``/'') بين الدلائل (باستثناءات انظر الخيار -W)، يمكن استخدام هذا الخيار لاستبعاد أي ملفات موجودة في الأدلة الفرعية. على سبيل المثال، سيقوم الأمر ``unzip foo *.[ch] -x */*'' باستخراج جميع ملفات التعليمات البرمجية المصدر C في الدليل الرئيسي، ولكن ليس أي ملفات في أي من الأدلة الفرعية. بدون الخيار -x، سيتم استخراج جميع ملفات التعليمات البرمجية المصدر C في جميع الأدلة الموجودة داخل ملف zip.

[-d exdir]
دليل اختياري لاستخراج الملفات إليه. افتراضيًا، تتم إعادة إنشاء جميع الملفات والدلائل الفرعية في الدليل الحالي؛ يسمح الخيار `-d` بالاستخراج في دليل اختياري (بافتراض أن لديك إذن الكتابة في الدليل). لا يحتاج هذا الخيار إلى الظهور في نهاية سطر الأوامر؛ يمكن قبوله أيضًا قبل تحديد ملف zip، أو مباشرة بعد تحديد ملف zip، أو بين الملفات وخيار `-x`. يمكن دمج الخيار والدليل بدون أي مسافة بينهما، ولكن لاحظ أن هذا قد يتسبب في منع السلوك الطبيعي للصدفة. على وجه الخصوص، يتم توسيع `‎-d ~‎` (علامة التلدة) بواسطة صدفة Unix C إلى اسم دليل المستخدم الرئيسي، ولكن `‎-d~‎` يتم التعامل معه كدليل فرعي حرفي `‎~‎` من الدليل الحالي.

الخيارات

لاحظ أنه من أجل دعم الأجهزة القديمة، فإن شاشة استخدام unzip تقتصر على 22 أو 23 سطراً ويجب اعتبارها تذكيرًا ببنية unzip الأساسية بدلاً من قائمة شاملة لجميع العلامات الممكنة. القائمة الشاملة هي:

-Z وضع zipinfo(1). إذا كان الخيار الأول في سطر الأوامر هو `-Z`، فسيتم اعتبار الخيارات المتبقية كخيارات zipinfo(1). راجع الصفحة اليدوية المناسبة للحصول على وصف لهذه الخيارات.

-A [OS/2، مكتبة DLL لنظام Unix] اطبع تعليمات مساعدة موسعة لواجهة برمجة التطبيقات (API) الخاصة بالمكتبة.

-c استخرج الملفات إلى stdout/الشاشة (``CRT''). هذا الخيار مشابه للخيار `-p` باستثناء أنه تتم طباعة اسم كل ملف أثناء استخراجه، ويُسمح بخيار `-a`، ويتم إجراء تحويل ASCII-EBCDIC تلقائيًا إذا كان ذلك مناسبًا. لا يتم سرد هذا الخيار في شاشة استخدام unzip.

-f جدد الملفات الموجودة، أي استخرج فقط الملفات الموجودة بالفعل على القرص والتي تكون أحدث من النسخ الموجودة على القرص. افتراضيًا، يقوم unzip بالاستعلام قبل الكتابة فوق، ولكن يمكن استخدام الخيار `-o` لقمع الاستعلامات. لاحظ أنه في العديد من أنظمة التشغيل، يجب تعيين متغير البيئة TZ (المنطقة الزمنية) بشكل صحيح حتى يعمل الخياران `-f` و `-u` بشكل صحيح (في نظام Unix، يتم عادةً تعيين المتغير تلقائيًا). الأسباب معقدة بعض الشيء ولكنها تتعلق بالاختلافات بين أوقات الملفات بتنسيق DOS (دائمًا بالتوقيت المحلي) وأوقات تنسيق Unix (دائمًا بتوقيت غرينتش/التوقيت العالمي الموحد) والحاجة إلى مقارنة الاثنين. قيمة TZ النموذجية هي `PST8PDT` (توقيت المحيط الهادئ الأمريكي مع تعديل تلقائي للتوقيت الصيفي).

-l  يعرض قائمة بملفات الأرشيف (بتنسيق مختصر). تتم طباعة أسماء الملفات، وأحجام الملفات غير المضغوطة، وتواريخ وأوقات التعديل للملفات المحددة، بالإضافة إلى إجماليات لجميع الملفات المحددة. إذا تم تجميع UnZip مع تعريف OS2_EAS، فإن الخيار `-l` يسرد أيضًا أعمدة لأحجام السمات الموسعة لنظام التشغيل OS/2 (EAs) وقوائم التحكم في الوصول (ACLs).
بالإضافة إلى ذلك، يتم عرض تعليق ملف الأرشيف وتعليقات الملفات الفردية (إن وجدت). إذا تم أرشفة ملف من نظام ملفات أحادي الحالة (على سبيل المثال، نظام ملفات MS-DOS القديم FAT)، وتم إعطاء الخيار `-L`، يتم تحويل اسم الملف إلى أحرف صغيرة ويتم وضعه في بداية الاسم بعلامة الإقحام (^).

-p  يستخرج الملفات إلى الإخراج القياسي (stdout). لا يتم إرسال سوى بيانات الملف إلى stdout، ويتم دائمًا استخراج الملفات بتنسيق ثنائي، تمامًا كما هي مخزنة (بدون تحويلات).

-t  يختبر ملفات الأرشيف. يقوم هذا الخيار باستخراج كل ملف محدد في الذاكرة ومقارنة CRC (فحص التكرار الدوري، وهو نوع متطور من المجموع الاختباري) للملف الموسع مع قيمة CRC الأصلية المخزنة للملف.

-T  [معظم أنظمة التشغيل] يضبط الطابع الزمني للأرشيف (الأرشيفات) على الطابع الزمني لأحدث ملف في كل أرشيف. يتوافق هذا مع خيار zip `-go` باستثناء أنه يمكن استخدامه مع ملفات zip باستخدام أحرف البدل (على سبيل المثال، `unzip -T *.zip`) وهو أسرع بكثير.

-u  يحدث الملفات الموجودة وينشئ ملفات جديدة إذا لزم الأمر. يقوم هذا الخيار بنفس وظيفة الخيار `-f`، حيث يقوم باستخراج (مع طلب) الملفات الأحدث من تلك الموجودة بنفس الاسم على القرص، بالإضافة إلى ذلك، يقوم باستخراج الملفات التي لا توجد بالفعل على القرص. انظر إلى الخيار `-f` أعلاه للحصول على معلومات حول كيفية تعيين المنطقة الزمنية بشكل صحيح.

-v  يعرض قائمة بملفات الأرشيف (بتنسيق مطول) أو يعرض معلومات تشخيصية حول الإصدار. لقد تطور هذا الخيار وأصبح الآن خيارًا ومُعدِّلاً. كخيار، له غرضان: عند تحديد ملف zip بدون خيارات أخرى، يعرض الخيار `-v` قائمة بملفات الأرشيف بشكل مطول، مع إضافة معلومات حول طريقة الضغط، والحجم المضغوط، ونسبة الضغط، و CRC ذي 32 بت إلى معلومات الخيار `-l` الأساسية. على عكس العديد من الأدوات المنافسة، يزيل unzip البايتات الإضافية الـ 12 لرأس الإدخالات المشفرة من أرقام الحجم المضغوط. لذلك، فإن أرقام الحجم المضغوط ونسب الضغط مستقلة عن حالة تشفير الإدخال وتُظهر أداء الضغط الصحيح. (يتم الإبلاغ عن الحجم الكامل لتدفق البيانات المضغوطة المشفرة لإدخالات ملف zip بواسطة التقارير الأكثر تفصيلاً لـ zipinfo(1)، راجع الدليل المنفصل). عند عدم تحديد ملف zip (أي أن الأمر الكامل هو ببساطة `unzip -v`)، يتم عرض شاشة تشخيصية. بالإضافة إلى الرأس العادي مع تاريخ الإصدار والإصدار، يسرد unzip موقع Info-ZIP ftp الرئيسي والمكان الذي يمكن العثور فيه على قائمة بالمواقع الأخرى عبر ftp وغير ftp؛ ونظام التشغيل المستهدف الذي تم تجميعه من أجله، بالإضافة إلى (ربما) الأجهزة التي تم تجميعه عليها، والمترجم والإصدار المستخدم، وتاريخ التجميع؛ وأي خيارات تجميع خاصة قد تؤثر على تشغيل البرنامج (انظر أيضًا DECRYPTION أدناه)؛ وأي خيارات مخزنة في متغيرات البيئة التي قد تفعل الشيء نفسه (انظر ENVIRONMENT OPTIONS أدناه). كمُعدِّل، يعمل بالتزامن مع خيارات أخرى (على سبيل المثال، `-t`) لإنتاج المزيد من المخرجات المطولة أو المخرجات المتعلقة بتصحيح الأخطاء؛ لم يتم تنفيذه بالكامل بعد، ولكن سيتم ذلك في الإصدارات المستقبلية.

-z عرض تعليق الأرشيف فقط.

المُعدِّلات

-a تحويل الملفات النصية. بشكل افتراضي، يتم استخراج جميع الملفات تمامًا كما هي مخزنة (كملفات "ثنائية"). يتسبب خيار -a في أن الملفات التي يحددها برنامج zip كملفات نصية (تلك التي تحمل تسمية `t` في قوائم zipinfo، بدلاً من `b`) يتم استخراجها تلقائيًا على هذا النحو، وتحويل نهايات الأسطر، وأحرف نهاية الملف، ومجموعة الأحرف نفسها حسب الحاجة. (على سبيل المثال، تستخدم ملفات Unix أحرف سطر جديد (LF) لنهايات الأسطر (EOL) ولا تحتوي على علامة نهاية الملف (EOF)؛ تستخدم أجهزة Macintosh أحرف إرجاع السطر (CR) لنهايات الأسطر؛ وتستخدم معظم أنظمة تشغيل أجهزة الكمبيوتر الشخصية CR+LF لنهايات الأسطر و control-Z لـ EOF. بالإضافة إلى ذلك، تستخدم أجهزة IBM الرئيسية ونظام Michigan Terminal مجموعة أحرف EBCDIC بدلاً من مجموعة أحرف ASCII الأكثر شيوعًا، ويدعم نظام NT Unicode). لاحظ أن تحديد برنامج zip للملفات النصية ليس مثاليًا؛ قد تكون بعض "الملفات النصية" في الواقع ملفات ثنائية والعكس صحيح. لذلك، يطبع برنامج unzip "[نص]" أو "[ثنائي]" كفحص مرئي لكل ملف يقوم باستخراجه عند استخدام خيار -a. يجبر خيار -aa جميع الملفات على أن يتم استخراجها كنص، بغض النظر عن نوع الملف المفترض. على نظام VMS، انظر أيضًا -S.

-b [عام] التعامل مع جميع الملفات كملفات ثنائية (بدون تحويلات نصية). هذا هو اختصار لـ ---a.

-b [Tandem] فرض إنشاء ملفات بنوع الملف 180 ('C') عند استخراج إدخالات Zip التي تم وضع علامة عليها على أنها "نص". (على نظام Tandem، يتم تمكين -a افتراضيًا، انظر أعلاه).

-b [VMS] تحويل الملفات الثنائية تلقائيًا (انظر -a أعلاه) إلى تنسيق سجل ثابت، 512 بايت. يؤدي مضاعفة الخيار (-bb) إلى إجبار جميع الملفات على أن يتم استخراجها بهذا التنسيق. عند الاستخراج إلى الإخراج القياسي (يكون خيار -c أو -p قيد التشغيل)، يتم تعطيل التحويل الافتراضي لفواصل السجلات النصية للملفات الثنائية (-b) على التوالي لجميع الملفات (-bb).

-B [عند تجميعه مع تعريف UNIXBACKUP] حفظ نسخة احتياطية من كل ملف يتم الكتابة فوقه. يتم تسمية الملف الاحتياطي باسم الملف الهدف مع علامة تلدة ورقم تسلسل فريد اختياريًا (حتى 5 أرقام) مُلحق. يتم تطبيق رقم التسلسل كلما كان هناك ملف آخر بنفس الاسم بالإضافة إلى علامة التلدة موجودًا بالفعل. عند استخدامه مع خيار "الكتابة فوق الكل" -o، لا يتم إنشاء ملفات احتياطية مرقمة أبدًا. في هذه الحالة، يتم تسمية جميع الملفات الاحتياطية بالاسم الأصلي مع إضافة علامة تلدة، ويتم حذف الملفات الاحتياطية الموجودة دون إشعار. يعمل هذا الميزة بشكل مشابه للسلوك الافتراضي لـ [emacs]({filename}../../emacs)(1) في العديد من المواقع.

مثال: يتم تغيير اسم النسخة القديمة من "foo" إلى "foo~".

تحذير: يجب أن يكون المستخدمون على دراية بأن خيار -B لا يمنع فقدان البيانات الموجودة في جميع الظروف. على سبيل المثال، عند تشغيل برنامج unzip في وضع الكتابة فوق الكل، يتم حذف ملف "foo~" الموجود قبل أن يحاول برنامج unzip إعادة تسمية "foo" إلى "foo~". عندما يفشل هذا المحاولة (بسبب أقفال الملفات، أو عدم كفاية الامتيازات، أو ...)، يتم إلغاء استخراج "foo~"، ولكن يتم فقدان الملف الاحتياطي القديم بالفعل. يحدث سيناريو مماثل عندما يتم استنفاد نطاق رقم التسلسل للملفات الاحتياطية المرقمة (99999، أو 65535 للأنظمة ذات 16 بت). في هذه الحالة، يتم حذف الملف الاحتياطي الذي يحتوي على الحد الأقصى لعدد التسلسلات واستبداله بالنسخة الاحتياطية الجديدة دون إشعار.

-C     استخدم المطابقة غير الحساسة لحالة الأحرف لاختيار إدخالات الأرشيف من قائمة تحديد الأنماط الموجودة في سطر الأوامر. فلسفة unzip هي "أنت تحصل على ما تطلبه" (وهذا مسؤول أيضًا عن تغيير -L/-U؛ راجع الخيارات ذات الصلة أدناه). نظرًا لأن بعض أنظمة الملفات حساسة لحالة الأحرف (خاصة تلك الموجودة تحت نظام التشغيل Unix) ولأن كلًا من أرشيفات ZIP و unzip قابلة للنقل عبر الأنظمة الأساسية، فإن السلوك الافتراضي لـ unzip هو مطابقة أحرف البدل وأسماء الملفات الحرفية بطريقة حساسة لحالة الأحرف. أي أن تحديد "makefile" في سطر الأوامر سيطابق فقط "makefile" في الأرشيف، وليس "Makefile" أو "MAKEFILE" (وبالمثل بالنسبة لمواصفات أحرف البدل). نظرًا لأن هذا لا يتوافق مع سلوك العديد من أنظمة التشغيل/الملفات الأخرى (على سبيل المثال، OS/2 HPFS، الذي يحافظ على الأحرف المختلطة ولكنه غير حساس لها)، يمكن استخدام الخيار -C لفرض أن تكون جميع عمليات مطابقة أسماء الملفات غير حساسة لحالة الأحرف. في المثال أعلاه، ستطابق جميع الملفات الثلاثة "makefile" (أو "make*", أو ما شابه). يؤثر خيار -C على مواصفات الملفات في كل من قائمة الملفات العادية وقائمة الملفات المستبعدة (xlist).

يرجى ملاحظة أن خيار -C لا يؤثر على البحث عن ملف ZIP أو مطابقة إدخالات الأرشيف بالملفات الموجودة في مسار الاستخراج. على نظام ملفات حساس لحالة الأحرف، لن يحاول unzip أبدًا الكتابة فوق ملف "FOO" عند استخراج إدخال "foo"!

-D     تخطي استعادة الطوابع الزمنية للعناصر المستخرجة. عادةً، يحاول unzip استعادة جميع البيانات الوصفية للعناصر المستخرجة المتوفرة في أرشيف Zip (والتي لا تتطلب امتيازات ولا تفرض خطرًا أمنيًا). عن طريق تحديد -D، يُطلب من unzip قمع استعادة الطوابع الزمنية للأدلة التي تم إنشاؤها بشكل صريح من إدخالات أرشيف Zip. ينطبق هذا الخيار فقط على المنافذ التي تدعم تعيين الطوابع الزمنية للأدلة (حاليًا ATheOS، و BeOS، و MacOS، و OS/2، و Unix، و VMS، و Win32، بالنسبة لمنافذ unzip الأخرى، لا يكون لـ -D أي تأثير). يؤدي الخيار المكرر -DD إلى قمع استعادة الطابع الزمني لجميع الإدخالات المستخرجة (الملفات والأدلة). يؤدي هذا الخيار إلى تعيين الطوابع الزمنية لجميع الإدخالات المستخرجة إلى الوقت الحالي.

على VMS، يكون الإعداد الافتراضي لهذا الخيار هو -D لتحقيق الاتساق مع سلوك BACKUP: يتم استعادة الطوابع الزمنية للملفات، ويتم ترك الطوابع الزمنية للأدلة المستخرجة في الوقت الحالي. لتمكين استعادة الطوابع الزمنية للدليل، يجب تحديد الخيار المعكوس --D. على VMS، يعطل الخيار -D استعادة الطابع الزمني لجميع عناصر أرشيف Zip المستخرجة. (هنا، يجمع خيار -D واحد في سطر الأوامر مع خيار -D الافتراضي للقيام بما يفعله خيار -DD الصريح على الأنظمة الأخرى).

-E     [نظام MacOS فقط] عرض محتويات حقل MacOS الإضافي أثناء عملية الاستعادة.

-F     [نظام Acorn فقط] قم بإيقاف إزالة امتداد نوع ملف NFS من أسماء الملفات المخزنة.

-F     [الأنظمة غير Acorn التي تدعم أسماء الملفات الطويلة التي تحتوي على فواصل، وفقط إذا تم تجميعها
باستخدام ACORN_FTYPE_NFS المعرفة] ترجمة معلومات نوع الملف من كتل الحقل الإضافي لنظام ACORN RISC OS إلى
امتداد نوع ملف NFS وألحقه بأسماء الملفات المستخرجة. (عندما يبدو أن اسم الملف المخزن يحتوي بالفعل على امتداد نوع ملف NFS ملحق، فإنه يتم استبداله بالمعلومات من الحقل الإضافي.)

-i     [نظام MacOS فقط] تجاهل أسماء الملفات المخزنة في الحقول الإضافية لنظام MacOS. بدلاً من ذلك، يتم استخدام اسم الملف الأكثر توافقًا المخزن في الجزء العام من رأس الإدخال.

-j     إلغاء المسارات. لا يتم إعادة إنشاء هيكل الدليل للأرشيف؛ يتم إيداع جميع الملفات في دليل الاستخراج (افتراضيًا، الدليل الحالي).

-J     [نظام BeOS فقط] إلغاء سمات الملف الخاصة بنظام BeOS. لا يتم استعادة سمات ملف BeOS الخاصة بالملف، بل يتم استعادة بيانات الملف فقط.

-J     [نظام MacOS فقط] تجاهل الحقول الإضافية لنظام MacOS. يتم تخطي جميع المعلومات الخاصة بنظام Macintosh. يتم استعادة الشوكة البيانات والشوكة المصدر كملفات منفصلة.

-K     [أنظمة AtheOS و BeOS و Unix فقط] الاحتفاظ بسمات الملفات SUID/SGID/Tacky. بدون هذا الخيار، يتم مسح هذه البتات الخاصة بالسمات لأسباب أمنية.

-L     تحويل أي اسم ملف يأتي من نظام تشغيل أو نظام ملفات يعتمد على الأحرف الكبيرة فقط إلى أحرف صغيرة. (كان هذا هو السلوك الافتراضي لـ unzip في الإصدارات السابقة للإصدار 5.11؛ السلوك الافتراضي الجديد هو نفسه السلوك القديم مع الخيار -U، الذي أصبح الآن قديمًا وسيتم إزالته في إصدار مستقبلي.) اعتمادًا على الأرشيف، قد يتم تخزين الملفات المؤرشفة في أنظمة ملفات أحادية الحالة (VMS، و MS-DOS FAT القديم، إلخ) كأحرف كبيرة فقط؛ يمكن أن يكون هذا غير جذاب أو غير مريح عند الاستخراج إلى نظام ملفات يحافظ على حالة الأحرف مثل OS/2 HPFS أو نظام حساس لحالة الأحرف مثل نظام Unix. بشكل افتراضي، يسرد unzip ويستخرج أسماء الملفات تمامًا كما يتم تخزينها (باستثناء الاقتطاع، وتحويل الأحرف غير المدعومة، وما إلى ذلك)؛ يتسبب هذا الخيار في تحويل أسماء جميع الملفات من بعض الأنظمة إلى أحرف صغيرة. الخيار -LL يجبر على تحويل كل اسم ملف إلى أحرف صغيرة، بغض النظر عن نظام الملفات الأصلي.

-M     تمرير جميع المخرجات من خلال أداة تقسيم الصفحات الداخلية المشابهة لأمر Unix more(1). في نهاية صفحة من المخرجات، يتوقف unzip مع مطالبة "--More--"؛ يمكن عرض الصفحة التالية بالضغط على مفتاح الإدخال (Enter) أو مفتاح المسافة. يمكن إنهاء unzip بالضغط على مفتاح "q" وعلى بعض الأنظمة، مفتاح الإدخال / الإرجاع (Enter/Return). على عكس أداة Unix more(1)، لا توجد إمكانية للبحث الأمامي أو التحرير. أيضًا، لا يلاحظ unzip إذا كانت الأسطر الطويلة تلتف على حافة الشاشة، مما يؤدي بشكل فعال إلى طباعة سطرين أو أكثر وزيادة احتمالية أن يمر بعض النص فوق الجزء العلوي من الشاشة قبل عرضه. على بعض الأنظمة، لا يتم اكتشاف عدد الأسطر المتاحة على الشاشة، وفي هذه الحالة يفترض unzip أن الارتفاع هو 24 سطرًا.

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

-N     [Amiga] استخرج تعليقات الملفات كـ "ملاحظات ملف" خاصة بنظام Amiga. يتم إنشاء تعليقات الملفات باستخدام الخيار [-c] لأمر [zip]({filename}../../zip)(1)، أو باستخدام الخيار [-N] لإصدار Amiga من أمر [zip]({filename}../../zip)(1)، والذي يقوم بتخزين الملاحظات كتعليقات.

-o     قم بالكتابة فوق الملفات الموجودة دون طلب تأكيد. هذا خيار خطير، لذا استخدمه بحذر. (غالبًا ما يتم استخدامه مع الخيار [-f]، وهو الطريقة الوحيدة للكتابة فوق "البيانات الإضافية للدليل" (directory EAs) في نظام التشغيل OS/2.)

-P كلمة المرور
استخدم كلمة المرور لفك تشفير إدخالات ملف zip المشفرة (إذا كانت موجودة). هذا غير آمن! توفر العديد من أنظمة التشغيل متعددة المستخدمين طرقًا لأي مستخدم لرؤية سطر الأوامر الحالي لأي مستخدم آخر؛ حتى على الأنظمة المستقلة، هناك دائمًا خطر التطفل. يعد تخزين كلمة المرور كنص عادي كجزء من سطر أوامر في برنامج نصي (script) تلقائي أسوأ. كلما أمكن ذلك، استخدم مطالبة تفاعلية غير معروضة لإدخال كلمات المرور. (وحيث تكون الأمان مهمًا حقًا، استخدم تشفيرًا قويًا مثل برنامج Pretty Good Privacy بدلاً من التشفير الضعيف نسبيًا المتوفر في أدوات ملف zip القياسية.)

-q     قم بإجراء العمليات بهدوء (-qq = أكثر هدوءًا). عادةً ما يقوم الأمر unzip بعرض أسماء الملفات التي يتم استخراجها أو اختبارها، وطرق الاستخراج، وأي تعليقات ملف أو ملف zip قد يتم تخزينها في الأرشيف، وربما ملخص عند الانتهاء من كل أرشيف. تقوم الخيارات [-q][q] بقمع طباعة بعض أو كل هذه الرسائل.

-s     [OS/2، NT، MS-DOS] قم بتحويل المسافات في أسماء الملفات إلى شرطات سفلية. نظرًا لأن جميع أنظمة تشغيل أجهزة الكمبيوتر الشخصية تسمح بالمسافات في أسماء الملفات، يقوم الأمر unzip بشكل افتراضي باستخراج أسماء الملفات مع الاحتفاظ بالمسافات (على سبيل المثال، ``EA DATA. SF''). ومع ذلك، قد يكون هذا غير مريح، حيث لا يدعم نظام MS-DOS المسافات في أسماء الملفات بشكل جيد. يمكن أن يؤدي تحويل المسافات إلى شرطات سفلية إلى القضاء على الإزعاج في بعض الحالات.

-S     [VMS] قم بتحويل الملفات النصية (-a، -aa) إلى تنسيق سجل Stream_LF، بدلاً من تنسيق سجل الملف النصي المتغير الطول الافتراضي. (يعد Stream_LF هو تنسيق السجل الافتراضي لبرنامج VMS unzip. يتم تطبيقه ما لم يتم طلب التحويل (-a، -aa و/أو -b، -bb) أو تمت معالجة إدخال خاص بنظام VMS.)

-U  [خيار دعم ترميز Unicode فقط] قم بتعديل أو تعطيل معالجة UTF-8. عند توفر دعم UNICODE_SUPPORT، يجبر الخيار -U برنامج unzip على إلغاء ترميز جميع الأحرف غير ASCII من أسماء الملفات المشفرة بـ UTF-8 كـ `‎#Uxxxx` (للأحرف UCS-2) أو `‎#Lxxxxxx` (لنقاط الترميز Unicode التي تتطلب 3 بايت). يتم توفير هذا الخيار بشكل أساسي لأغراض التصحيح عندما يشتبه في أن دعم UTF-8 الجديد نسبيًا قد أفسد أسماء الملفات المستخرجة.

يسمح الخيار -UU بتعطيل التعرف على أسماء الملفات المشفرة بـ UTF-8. تعود معالجة ترميزات أسماء الملفات في برنامج unzip إلى سلوك الإصدارات السابقة.

[استخدام قديم، لم يعد قيد الاستخدام] اترك أسماء الملفات بأحرف كبيرة إذا تم إنشاؤها في MS-DOS أو VMS وما إلى ذلك. انظر -L أعلاه.

-V  احتفظ بأرقام إصدار ملفات VMS. يمكن تخزين ملفات VMS برقم إصدار، بالتنسيق `اسم_الملف.ext؛##`. افتراضيًا، يتم تجريد أرقام الإصدار `؛##`، ولكن يسمح هذا الخيار بالاحتفاظ بها. (في أنظمة الملفات التي تحد من طول أسماء الملفات بشكل كبير، قد يتم اقتطاع أرقام الإصدار أو إزالتها بغض النظر عن هذا الخيار.)

-W  [فقط عند تمكين خيار التجميع WILD_STOP_AT_DIR] يقوم بتعديل إجراء مطابقة الأنماط بحيث لا تتطابق كل من `؟` (حرف بدل واحد) و `*` (حرف بدل متعدد الأحرف) مع حرف فاصل الدليل `/`. (يعمل التسلسل المكون من حرفين `‎**` كحرف بدل متعدد الأحرف يتضمن حرف فاصل الدليل في الأحرف المطابقة.) أمثلة:

`‎*.c` يطابق `‎foo.c` ولكن ليس `‎mydir/foo.c`
`‎**.c` يطابق كلاً من `‎foo.c` و `‎mydir/foo.c`
`‎*/*.c` يطابق `‎bar/foo.c` ولكن ليس `‎baz/bar/foo.c`
`‎??*/*` يطابق `‎ab/foo` و `‎abc/foo`
ولكن ليس `‎a/foo` أو `‎a/b/foo`

هذا السلوك المعدل يعادل نمط مطابقة الأنماط المستخدم بواسطة أنظمة التشغيل المستهدفة لـ UnZip (أحد الأمثلة هو Acorn RISC OS). قد لا يكون هذا الخيار متاحًا على الأنظمة التي يُسمح فيها باستخدام الحرف `/` كحرف عادي في أسماء ملفات نظام التشغيل الأصلي. (حاليًا، يستخدم UnZip نفس قواعد مطابقة الأنماط لكل من مواصفات ملفات zip ذات الأحرف البدلة وأنماط تحديد إدخالات zip. بالنسبة للأنظمة التي تسمح بـ `‎/` كحرف اسم ملف عادي، فإن الخيار -W لن يعمل كما هو متوقع على مواصفات ملفات zip ذات الأحرف البدلة.)

-X  [VMS، Unix، OS/2، NT، Tandem] استعادة معلومات المالك/الحماية (إدخالات UICs و ACL) في VMS، أو معلومات المستخدم والمجموعة (معرفات المستخدم/معرفات المجموعة) في Unix، أو قوائم التحكم في الوصول (ACLs) في بعض إصدارات OS/2 التي تدعم الشبكات (Warp Server مع IBM LAN Server/Requester 3.0 إلى 0 Warp Connect مع IBM Peer 1.0)، أو ACLs الخاصة بالأمان في Windows NT. في معظم الحالات، سيتطلب هذا امتيازات نظام خاصة، واستخدام الخيار المزدوج (-XX) في NT يوجه برنامج unzip لاستخدام الامتيازات للاستخراج؛ ولكن في Unix، على سبيل المثال، يمكن للمستخدم الذي ينتمي إلى عدة مجموعات استعادة الملفات التي يملكها أي من هذه المجموعات، طالما أن معرفات المستخدم تطابق معرفاته الخاصة. لاحظ أن سمات الملفات العادية يتم استعادتها دائمًا - ينطبق هذا الخيار فقط على معلومات الملكية الإضافية الاختيارية المتوفرة في بعض أنظمة التشغيل. [لا تبدو قوائم التحكم في الوصول الخاصة بـ NT متوافقة بشكل خاص مع قوائم التحكم في الوصول الخاصة بـ OS/2، لذلك لا يتم إجراء أي محاولة للتوافق بين الأنظمة الأساسية لامتيازات الوصول. من غير الواضح في ظل أي ظروف قد يكون هذا مفيدًا على أي حال.]

-Y     [VMS] تعامل أسماء الملفات المؤرشفة التي تنتهي بـ ``.nnn'' (حيث ``nnn'' هو رقم عشري) كما لو كانت أرقام إصدارات VMS (``;nnn''). (افتراضيًا، يتم التعامل معها كأنواع ملفات). مثال:
"a.b.3" -> "a.b;3".

-$     [MS-DOS, OS/2, NT] استعادة تسمية وحدة التخزين إذا كان وسيط الاستخراج قابلاً للإزالة (مثل القرص المرن). يسمح تكرار الخيار (-$$) بتسمية وسائط التخزين الثابتة (الأقراص الصلبة) أيضًا. افتراضيًا، يتم تجاهل تسميات وحدة التخزين.

-/ extensions
[Acorn فقط] يتجاوز قائمة الامتدادات التي توفرها متغير بيئة Unzip$Ext. أثناء الاستخراج، يتم تبديل امتدادات أسماء الملفات التي تطابق أحد العناصر في قائمة الامتدادات هذه ووضعها في بداية الاسم الأساسي للملف المستخرج.

-:     [جميع الأنظمة باستثناء Acorn، وVM/CMS، وMVS، وTandem] يسمح باستخراج أعضاء الأرشيف إلى مواقع خارج "مجلد الجذر" للاستخراج الحالي. لأسباب أمنية، يقوم unzip عادةً بإزالة مكونات مسار "المجلد الأصلي" (``../'') من أسماء الملفات المستخرجة. تمنع هذه الميزة الأمنية (المقدمة في الإصدار 5.50) unzip من الكتابة عن طريق الخطأ إلى "المناطق الحساسة" خارج شجرة المجلد النشطة للاستخراج. يسمح الخيار -: لـ unzip بالعودة إلى سلوكه السابق الأكثر تساهلاً، للسماح بالاستخراج الدقيق للأرشيفات القديمة التي استخدمت مكونات ``../'' لإنشاء أشجار دليل متعددة على مستوى مجلد الاستخراج الحالي. لا يمكّن هذا الخيار الكتابة بشكل صريح إلى الدليل الجذر (``/''). لتحقيق ذلك، من الضروري تعيين مجلد الاستهداف إلى الجذر (على سبيل المثال، -d /). ومع ذلك، عند تحديد خيار -:، لا يزال من الممكن الكتابة ضمنيًا إلى الدليل الجذر عن طريق تحديد عدد كافٍ من مكونات المسار ``../'' داخل أرشيف zip. استخدم هذا الخيار بحذر شديد.

-^     [Unix فقط] يسمح بالتحكم في الأحرف في أسماء إدخالات أرشيف ZIP المستخرجة. على نظام Unix، يمكن أن يحتوي اسم الملف على أي رمز حرف (8 بت) باستثناء الحرفين '/' (فاصل الدليل) و NUL (0x00، مؤشر إنهاء سلسلة C)، ما لم يكن لنظام الملفات المحدد قيود أكثر صرامة. بشكل عام، يسمح هذا بتضمين أحرف تحكم ASCII (أو حتى تسلسلات تحكم متطورة) في أسماء الملفات، على الأقل على أنظمة ملفات Unix "الأصلية". ومع ذلك، قد يكون من المشبوه الاستفادة من هذه "الميزة" في نظام Unix. قد يكون للأحرف التحكمية المضمنة في أسماء الملفات آثار جانبية سيئة عند عرضها على الشاشة بواسطة بعض التعليمات البرمجية الخاصة بالعرض بدون تصفية كافية. وقد يكون من الصعب على المستخدمين العاديين التعامل مع هذه الأسماء (على سبيل المثال، عند محاولة تحديدها لعمليات الفتح أو النسخ أو النقل أو الحذف). لذلك، يطبق unzip مرشحًا افتراضيًا يزيل الأحرف التحكمية الخطيرة المحتملة من أسماء الملفات المستخرجة. يسمح الخيار -^ بتجاوز هذا المرشح في الحالة النادرة التي يجب فيها استعادة أحرف التحكم في اسم الملف عن قصد.

-2     [VMS] قم بإجبار التحويل غير المشروط لأسماء الملفات إلى أسماء متوافقة مع ODS2. الافتراضي هو الاستفادة من نظام الملفات الوجهة، مع الحفاظ على حالة الأحرف وأحرف أسماء الملفات الممتدة على نظام ملفات ODS5 الوجهة؛ وتطبيق عامل تصفية أسماء الملفات المتوافقة مع ODS2 على نظام ملفات ODS2 الوجهة.

خيارات البيئة

يمكن تعديل السلوك الافتراضي لـ unzip عبر خيارات توضع في متغير بيئة. يمكن القيام بذلك مع أي خيار، ولكنه قد يكون الأكثر فائدة مع الخيارات -a و -L و -C و -q و -o أو -n: اجعل unzip يحوّل الملفات النصية تلقائيًا، واجعله يحوّل أسماء الملفات من الأنظمة ذات الأحرف الكبيرة إلى الأحرف الصغيرة، واجعله يطابق الأسماء بشكل غير حساس لحالة الأحرف، واجعله يعمل بهدوء أكبر، أو اجعله يتجاوز الملفات دائمًا أو لا يتجاوز الملفات أبدًا أثناء استخراجها. على سبيل المثال، لجعل unzip يعمل بأقل قدر ممكن من الضوضاء، مع الإبلاغ عن الأخطاء فقط، يمكن استخدام أحد الأوامر التالية:

نظام Unix Bourne shell: UNZIP=-qq; export UNZIP

نظام Unix C shell: setenv UNZIP -qq

نظام OS/2 أو MS-DOS:
set UNZIP=-qq

نظام VMS (علامات اقتباس للأحرف الصغيرة):
define UNZIP_OPTS "-qq"

تُعامل خيارات البيئة على أنها مجرد خيارات سطر أوامر أخرى، باستثناء أنها تُعتبر بشكل فعال الخيارات الأولى في سطر الأوامر. لتجاوز خيار بيئة، يمكن استخدام "عامل الإشارة السالبة" لإزالته. على سبيل المثال، لتجاوز أحد خيارات "الهدوء" في المثال أعلاه، استخدم الأمر

unzip --q[خيارات أخرى] اسم_الملف_المضغوط

العلامة الأولى هي علامة التبديل العادية، والثانية هي علامة ناقص، وتعمل على خيار q. وبالتالي، فإن التأثير هنا هو إلغاء وحدة واحدة من "الهدوء". لإلغاء كلتا علامتي "الهدوء"، يمكن استخدام علامتين (أو أكثر):

unzip -t--q اسم_الملف_المضغوط
unzip ---qt اسم_الملف_المضغوط

(كلاهما متساويان). قد يبدو هذا أمرًا غريبًا أو مربكًا، ولكنه بديهي إلى حد ما: تجاهل العلامة الأولى واستمر. إنه أيضًا متوافق مع سلوك Unix [nice]({filename}../../nice)(1).

كما هو موضح في الأمثلة أعلاه، فإن أسماء المتغيرات الافتراضية هي UNZIP_OPTS لنظام VMS (حيث قد يتعارض الرمز المستخدم لتثبيت unzip كأمر خارجي مع متغير البيئة)، و UNZIP لجميع أنظمة التشغيل الأخرى. للتوافق مع zip(1)، يتم أيضًا قبول UNZIPOPT (لا تسأل). ومع ذلك، إذا تم تعريف كل من UNZIP و UNZIPOPT، فإن UNZIP لها الأسبقية. يمكن استخدام خيار التشخيص الخاص بـ unzip (-v بدون اسم ملف مضغوط) للتحقق من قيم جميع متغيرات unzip و zipinfo الأربعة المحتملة.


يجب تعيين متغير المنطقة الزمنية (TZ) وفقًا للمنطقة الزمنية المحلية حتى تعمل الخيارات -f و -u بشكل صحيح. انظر وصف الخيار -f أعلاه للحصول على التفاصيل. قد يكون هذا المتغير ضروريًا أيضًا لتعيين الطوابع الزمنية للملفات المستخرجة بشكل صحيح. يعتمد إصدار WIN32 (Win9x/ME/NT4/2K/XP/2K3) من برنامج unzip على سجل النظام للحصول على إعدادات المنطقة الزمنية، على افتراض أنه تم تعيينها بشكل صحيح في لوحة التحكم. يتم تجاهل متغير TZ لهذا الإصدار.

فك التشفير

تدعم برامج Info-ZIP الأرشيفات المشفرة بالكامل، ولكن بسبب قيود التصدير في الولايات المتحدة، قد يتم تعطيل دعم التشفير وفك التشفير في النسخة الثنائية المترجمة لديك. ومع ذلك، اعتبارًا من ربيع عام 2000، تم تخفيف قيود التصدير الأمريكية، وتتضمن أرشيفات المصدر الخاصة بنا الآن رمز التشفير الكامل. إذا كنت بحاجة إلى توزيعات ثنائية مع تمكين دعم التشفير، فراجع الملف WHERE في أي توزيعة مصدر أو ثنائية من Info-ZIP للحصول على مواقع داخل الولايات المتحدة وخارجها.

قد لا تدعم بعض النسخ المترجمة من unzip فك التشفير. للتحقق من وجود دعم فك التشفير في نسخة، حاول اختبار أو استخراج أرشيف مشفر، أو تحقق من شاشة التشخيص الخاصة بـ unzip (انظر الخيار -v أعلاه) لمعرفة ما إذا كان [decryption] مدرجًا كأحد خيارات التجميع الخاصة.

كما هو مذكور أعلاه، يمكن استخدام الخيار -P لتوفير كلمة المرور في سطر الأوامر، ولكن على حساب الأمان. الطريقة المفضلة لفك التشفير هي ببساطة الاستخراج بشكل طبيعي؛ إذا كانت عضوية ملف في أرشيف zip مشفرة، فسيطلب منك برنامج unzip كلمة المرور دون إظهار ما يتم كتابته. يستمر برنامج unzip في استخدام نفس كلمة المرور طالما أنها تبدو صالحة، عن طريق اختبار رأس مكون من 12 بايت في كل ملف. ستنجح كلمة المرور الصحيحة دائمًا في التحقق من الرأس، ولكن هناك فرصة 1 من 256 أن تنجح كلمة مرور غير صحيحة أيضًا. (هذه ميزة أمان في تنسيق ملف zip الخاص بـ PKWARE؛ فهي تساعد في منع الهجمات القائمة على التجربة والقوة التي قد تحصل على ميزة كبيرة في السرعة عن طريق اختبار الرأس فقط). في حالة إعطاء كلمة مرور غير صحيحة ولكنها تجتاز اختبار الرأس على أي حال، إما سيتم إنشاء CRC غير صحيح للبيانات المستخرجة أو سيفشل برنامج unzip أثناء الاستخراج لأن البايتات "المفككة" لا تشكل تدفق بيانات مضغوط صالح.

إذا فشلت كلمة المرور الأولى في اختبار الرأس على بعض الملفات، فسيطلب منك برنامج unzip كلمة مرور أخرى، وهكذا حتى يتم استخراج جميع الملفات. إذا كانت كلمة المرور غير معروفة، فإن إدخال كلمة مرور فارغة (أي مجرد إرجاع أو Enter) يعتبر إشارة لتخطي جميع المطالبات اللاحقة. سيتم بعد ذلك استخراج الملفات غير المشفرة فقط في الأرشيف (أو الأرشيفات). (في الواقع، هذا ليس صحيحًا تمامًا؛ سمحت الإصدارات القديمة من zip(1) و zipcloak(1) بكلمات مرور فارغة، لذلك يتحقق برنامج unzip من كل ملف مشفر لمعرفة ما إذا كانت كلمة المرور الفارغة تعمل. قد يؤدي ذلك إلى "نتائج إيجابية خاطئة" وأخطاء في الاستخراج، كما هو مذكور أعلاه).


قد لا تكون الأرشيفات المشفرة بكلمات مرور ذات 8 بت (على سبيل المثال، كلمات المرور التي تحتوي على أحرف أوروبية ذات علامات ترقيم) قابلة للنقل عبر الأنظمة و/أو أدوات الأرشيف الأخرى. تنبع هذه المشكلة من استخدام طرق ترميز متعددة لهذه الأحرف، بما في ذلك Latin-1 (ISO 8859-1) وصفحة التعليمات البرمجية OEM 850. يستخدم DOS PKZIP 2.04g صفحة التعليمات البرمجية OEM؛ يستخدم Windows PKZIP 2.50 Latin-1 (وبالتالي فهو غير متوافق مع DOS PKZIP)؛ يستخدم Info-ZIP صفحة التعليمات البرمجية OEM على DOS و OS/2 ومنصات Win3.x ولكن ترميز ISO (Latin-1 وما شابه) في كل مكان آخر؛ ولا يسمح Nico Mak's WinZip 6.x بكلمات مرور ذات 8 بت على الإطلاق. تحاول UnZip 5.3 (أو أحدث) استخدام مجموعة الأحرف الافتراضية أولاً (مثل Latin-1)، متبوعة بمجموعة الأحرف البديلة (مثل صفحة التعليمات البرمجية OEM) لاختبار كلمات المرور. على أنظمة EBCDIC، إذا فشل كلا الاختبارين، فسيتم اختبار ترميز EBCDIC كمحاولة أخيرة. (لا يتم اختبار EBCDIC على الأنظمة غير EBCDIC، لأنه لا توجد أدوات أرشيف معروفة تقوم بالتشفير باستخدام ترميز EBCDIC). لا يتم دعم ترميزات أحرف ISO الأخرى غير Latin-1. لم يتم تكييف الإضافة الجديدة لدعم (جزئيًا) Unicode (على التوالي UTF-8) في UnZip 6.0 بعد مع معالجة كلمة مرور التشفير في unzip. على الأنظمة التي تستخدم UTF-8 كترميز أحرف أصلي، يحاول unzip ببساطة فك التشفير باستخدام كلمة المرور المشفرة بـ UTF-8 الأصلية؛ لم يتم تكييف المحاولات المضمنة للتحقق من كلمة المرور في الترميز المترجم بعد لدعم UTF-8 وستفشل بالتالي.

أمثلة

لاستخدام unzip لاستخراج جميع أعضاء الأرشيف letters.zip في الدليل الحالي والأدلة الفرعية تحته، وإنشاء أي أدلة فرعية حسب الحاجة:

unzip letters

لاستخراج جميع أعضاء letters.zip في الدليل الحالي فقط:

unzip -j letters

لاختبار letters.zip، مع طباعة رسالة ملخص فقط تشير إلى ما إذا كان الأرشيف جيدًا أم لا:

unzip -tq letters

لاختبار جميع ملفات zip في الدليل الحالي، مع طباعة الملخصات فقط:

unzip -tq \*.zip

(يتطلب الشرطة المائلة للخلف قبل علامة النجمة فقط إذا قام shell بتوسيع أحرف البدل، كما هو الحال في Unix؛ يمكن استخدام علامات اقتباس مزدوجة بدلاً من ذلك، كما في الأمثلة المصدرية أدناه). لاستخراج جميع أعضاء letters.zip التي تنتهي أسماؤها بـ .tex إلى الإخراج القياسي، مع التحويل التلقائي إلى اتفاقية نهاية السطر المحلية وتمرير الإخراج إلى more(1):

unzip -ca letters \*.tex | more

لاستخراج الملف الثنائي paper1.dvi إلى المخرج القياسي وتمريره إلى برنامج طباعة:

unzip -p articles paper1.dvi | dvips

لاستخراج جميع ملفات المصدر FORTRAN و C -- *.f، *.c، *.h، و Makefile -- إلى الدليل /tmp:

unzip source.zip "*.[fch]" Makefile -d /tmp

(تُعد علامات الاقتباس المزدوجة ضرورية فقط في نظام Unix وفقط إذا تم تفعيل التوسيع (globbing)). لاستخراج جميع ملفات المصدر FORTRAN و C، بغض النظر عن حالة الأحرف (على سبيل المثال، كل من *.c و *.C، وأي ملف makefile، Makefile، MAKEFILE أو ما شابه):

unzip -C source.zip "*.[fch]" makefile -d /tmp

لاستخراج أي من هذه الملفات ولكن لتحويل أي أسماء MS-DOS أو VMS بأحرف كبيرة إلى أحرف صغيرة وتحويل نهايات الأسطر لجميع الملفات إلى المعيار المحلي (بغض النظر عن أي ملفات قد تكون مُعلمة على أنها "ثنائية"):

unzip -aaCL source.zip "*.[fch]" makefile -d /tmp

لاستخراج الإصدارات الأحدث فقط من الملفات الموجودة بالفعل في الدليل الحالي، دون طلب تأكيد (ملاحظة: كن حذرًا بشأن فك ضغط أرشيف في منطقة زمنية مختلفة عن المنطقة الزمنية التي تم إنشاؤها فيها -- أرشيفات ZIP التي تم إنشاؤها بواسطة Zip 2.1 أو إصدار أحدث لا تحتوي على معلومات المنطقة الزمنية، وقد يكون الملف "الأحدث" من منطقة زمنية شرقية في الواقع أقدم):

unzip -fo sources

لاستخراج الإصدارات الأحدث من الملفات الموجودة بالفعل في الدليل الحالي وإنشاء أي ملفات غير موجودة (نفس التحذير كما في المثال السابق):

unzip -uo sources

لعرض شاشة تشخيصية توضح خيارات unzip و zipinfo المخزنة في متغيرات البيئة، وما إذا تم تجميع دعم فك التشفير، والمترجم الذي تم تجميع unzip به، وما إلى ذلك:

unzip -v

في الأمثلة الخمسة الأخيرة، افترض أن UNZIP أو UNZIP_OPTS تم تعيينهما على -q. لإجراء قائمة هادئة واحدة:

unzip -l file.zip

لإجراء قائمة هادئة مزدوجة:

unzip -ql file.zip

(لاحظ أن ".zip" ليست ضرورية بشكل عام). لإجراء قائمة قياسية:

unzip --ql file.zip
أو
unzip -l-q file.zip
أو
unzip -l--q file.zip
(لا تضر علامات الزائد في الخيارات).

نصائح

يجد المطور الحالي، كونه شخصًا كسولًا، أنه من المفيد تحديد زوج من الأسماء المستعارة: tt لـ "unzip -tq" و ii لـ "unzip -Z" (أو "zipinfo"). يمكن للمستخدم ببساطة كتابة "tt zipfile" لاختبار الأرشيف، وهو أمر يستحق جعله عادة. لحسن الحظ، سيعرض unzip "لم يتم اكتشاف أي أخطاء في البيانات المضغوطة لـ zipfile.zip"، وبعد ذلك يمكن للمستخدم أن يزفر بارتياح.

يجد المطور أيضًا أنه من المفيد تعيين متغير البيئة UNZIP إلى "-aL" وهو مغرٍ بإضافة "-C" أيضًا. تم تعيين متغير ZIPINFO الخاص به على "-z".

تشخيص

يكون رمز الخروج (أو مستوى الخطأ) تقريبيًا لرموز الخروج المعرفة بواسطة PKWARE ويأخذ القيم التالية، باستثناء VMS:

0     طبيعي؛ لم يتم اكتشاف أي أخطاء أو تحذيرات.

1     تمت مواجهة خطأ أو تحذير واحد أو أكثر، ولكن تمت معالجة العملية بنجاح على أي حال. ويشمل ذلك ملفات zip حيث تم تخطي ملف واحد أو أكثر بسبب طريقة ضغط غير مدعومة أو تشفير بكلمة مرور غير معروفة.

2     حدث خطأ عام في تنسيق ملف zip. قد يكون المعالجة قد اكتملت بنجاح على أي حال؛ بعض ملفات zip المعطوبة التي تم إنشاؤها بواسطة أدوات أخرى لديها حلول بسيطة.

3     تم اكتشاف خطأ جسيم في تنسيق ملف zip. من المحتمل أن تكون المعالجة قد فشلت على الفور.

4     لم يتمكن unzip من تخصيص ذاكرة لواحدة أو أكثر من المخازن المؤقتة أثناء تهيئة البرنامج.

5     لم يتمكن unzip من تخصيص ذاكرة أو الحصول على جهاز طرفي (tty) لقراءة كلمة مرور فك التشفير.

6     لم يتمكن unzip من تخصيص ذاكرة أثناء فك الضغط إلى القرص.

7     لم يتمكن unzip من تخصيص ذاكرة أثناء فك الضغط في الذاكرة.

8     [غير مستخدم حاليًا]

9     لم يتم العثور على ملفات zip المحددة.

10    تم تحديد خيارات غير صالحة في سطر الأوامر.

11    لم يتم العثور على أي ملفات مطابقة.

50    القرص ممتلئ (أو كان ممتلئًا) أثناء الاستخراج.

51    تم الوصول إلى نهاية أرشيف ZIP قبل الأوان.

80    أنهى المستخدم برنامج unzip قبل الأوان باستخدام Ctrl+C (أو ما شابه ذلك).

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

82    لم يتم العثور على أي ملفات بسبب كلمات مرور فك التشفير الخاطئة. (إذا تمت معالجة ملف واحد على الأقل بنجاح، فإن حالة الخروج هي 1.)

تفسر VMS قيم الإرجاع القياسية في Unix (أو PC) على أنها أشياء أخرى أكثر إثارة للقلق، لذلك يقوم unzip بدلاً من ذلك بتعيينها إلى رموز حالة VMS. التعيين الحالي هو كما يلي: 1 (نجاح) للخروج العادي، و 0x7fff0001 للأخطاء التحذيرية، و (0x7fff000? + 16 * حالة الخروج العادية لـ unzip) لجميع الأخطاء الأخرى، حيث تكون `?` هي 2 (خطأ) لقيم unzip 2 و 9-11 و 80-82، و 4 (خطأ قاتل) للباقي (3-8 و 50 و 51). بالإضافة إلى ذلك، هناك خيار تجميع لتوسيع هذا السلوك: تحديد RETURN_CODES يؤدي إلى شرح يمكن قراءته بواسطة الإنسان لما تعنيه حالة الخطأ.

الأخطاء

الأرشيفات متعددة الأجزاء غير مدعومة حتى الآن، باستثناء بالاشتراك مع zip. (يجب ربط جميع الأجزاء معًا بالترتيب، ثم يجب تنفيذ zip -F'' (لـ zip 2.x) أوzip -FF'' (لـ zip 3.x) على الأرشيف المجمع "لإصلاحه". أيضًا، يمكن لـ zip 3.0 والإصدارات الأحدث دمج الأرشيفات المقسمة (متعددة الأجزاء) في أرشيف واحد باستخدام ``zip -s- inarchive -O outarchive''. راجع صفحة دليل zip 3 لمزيد من المعلومات.) سيتم تصحيح هذا بالتأكيد في الإصدار الرئيسي التالي.

الأرشيفات التي يتم قراءتها من الإدخال القياسي غير مدعومة حتى الآن، باستثناء مع funzip (ثم يمكن استخراج العضو الأول فقط من الأرشيف).

قد لا تكون الأرشيفات المشفرة بكلمات مرور 8 بت (مثل كلمات المرور التي تحتوي على أحرف أوروبية مزينة) قابلة للنقل عبر الأنظمة و/أو أدوات الأرشفة الأخرى. راجع المناقشة في DECRYPTION أعلاه.

يحاول خيار -M لـ unzip ("المزيد") أن يأخذ في الاعتبار التغليف التلقائي للأسطر الطويلة. ومع ذلك، قد يفشل الكود في اكتشاف مواقع التغليف الصحيحة. أولاً، لا يتم أخذ الأحرف الشريطية (وتسلسلات التحكم المماثلة) في الاعتبار، ويتم التعامل معها كأحرف قابلة للطباعة عادية. ثانيًا، اعتمادًا على نظام التشغيل الفعلي / منفذ نظام التشغيل، قد لا يكتشف unzip هندسة الشاشة الفعلية ولكن يعتمد بدلاً من ذلك على "أبعاد افتراضية" مستخدمة بشكل شائع. سيتطلب التعامل الصحيح مع علامات التبويب تنفيذ استعلام حول إعداد علامة التبويب الفعلي على وحدة التحكم الإخراج.


لا يتم استعادة تواريخ وأوقات وأذونات الدلائل المخزنة باستثناء في نظام Unix. (في أنظمة Windows NT والإصدارات اللاحقة، يتم الآن استعادة الطوابع الزمنية.)

[MS-DOS] عند استخراج الملفات أو اختبارها من أرشيف على قرص مرن معيب، إذا تم اختيار خيار "فشل" من رسالة DOS "إعادة المحاولة، المحاولة مرة أخرى، الفشل؟"، فقد يتسبب الإصدارات القديمة من unzip في تعطل النظام، مما يتطلب إعادة التشغيل. يبدو أن هذه المشكلة قد تم إصلاحها، ولكن لا يزال بإمكان استخدام Ctrl+C (أو Ctrl+Break) لإنهاء unzip.

في نظام DEC Ultrix، كان unzip يفشل في بعض الأحيان في ملفات zip الكبيرة (خطأ CRC، غير قابل للتكرار دائمًا). يبدو أن هذا يرجع إما إلى خطأ في الأجهزة (ذاكرة التخزين المؤقت) أو خطأ في نظام التشغيل (معالجة غير صحيحة للأخطاء في الصفحات؟). نظرًا لأن نظام Ultrix قد تم التخلي عنه لصالح نظام Digital Unix (OSF/1)، فقد لا تكون هذه مشكلة بعد الآن.

[Unix] لا يتم استعادة الملفات الخاصة في Unix مثل مخازن FIFO (الأنابيب المسماة)، والأجهزة الكتلة، والأجهزة الطرفية، حتى لو كانت موجودة بطريقة ما في ملف zip، كما أن الملفات المرتبطة ارتباطًا ثابتًا لا تتم إعادة ربطها. بشكل أساسي، أنواع الملفات الوحيدة التي يتم استعادتها بواسطة unzip هي الملفات العادية والدلائل والروابط الرمزية (الناعمة).

[OS/2] يتم تحديث السمات الممتدة للدلائل الموجودة فقط إذا تم إعطاء الخيار `-o` ("تجاوز الكل"). هذا يمثل قيودًا في نظام التشغيل؛ نظرًا لأن الدلائل تحتوي فقط على وقت الإنشاء المرتبط بها، فإن unzip ليس لديه طريقة لتحديد ما إذا كانت السمات المخزنة أحدث أو أقدم من تلك الموجودة على القرص. في الممارسة العملية، قد يعني هذا أن هناك حاجة إلى اتباع نهج بخطوتين: أولاً، قم بفك ضغط الأرشيف بشكل طبيعي (مع أو بدون تحديث/تحديث الملفات الموجودة)، ثم قم بتجاوز إدخالات الدليل فقط (على سبيل المثال، `unzip -o foo */`).

[VMS] عند الاستخراج إلى دليل آخر، يتم قبول صيغة `[foo]` فقط للخيار `-d`؛ يتم تجاهل صيغة Unix البسيطة `foo` بصمت (كما هو الحال مع صيغة VMS الأقل شيوعًا `foo.dir`).

[VMS] عند وجود الملف الذي يتم استخراجه بالفعل، يسمح استعلام unzip فقط بتخطي أو تجاوز أو إعادة تسمية؛ يجب أن يكون هناك أيضًا خيار لإنشاء نسخة جديدة من الملف. في الواقع، يؤدي خيار "التجاوز" إلى إنشاء نسخة جديدة؛ لا يتم تجاوز النسخة القديمة أو حذفها.

انظر أيضًا

funzip(1)، zip(1)، zipcloak(1)، zipgrep(1)، zipinfo(1)، zipnote(1)، zipsplit(1)

عنوان URL

الموقع الإلكتروني لـ Info-ZIP هو حاليًا http://www.info-zip.org/pub/infozip/ أو ftp://ftp.info-zip.org/pub/infozip/.


المؤلفون

المؤلفون الرئيسيون لـ Info-Zip (الأعضاء الحاليون النشطون بشكل شبه منتظم في مجموعة Zip-Bugs) هم: إد جوردون (Zip، الصيانة العامة، الكود المشترك، Zip64، Win32، Unix، Unicode)؛ كريستيان شبايلر (تنسيق صيانة UnZip، VMS، MS-DOS، Win32، الكود المشترك، التكامل والتحسين العام لـ Zip و UnZip)؛ أونو فان دير ليندن (Zip)؛ مايك وايت (Win32، واجهة مستخدم Windows، مكتبات DLL لنظام Windows)؛ كاي أوفي روميل (OS/2، Win32)؛ ستيفن إم. شويدا (VMS، Unix، دعم الميزات الجديدة)؛ بول كينيتز (Amiga، Win32، Unicode)؛ كريس هيربورث (BeOS، QNX، Atari)؛ جوناثان هدسون (SMS/QDOS)؛ سيرجيو مونيسي (Acorn RISC OS)؛ هارالد دينكر (Atari، MVS)؛ جون بوش (Solaris، Amiga)؛ هنتر جواتلي (VMS، صيانة موقع Info-ZIP)؛ ستيف سالزبوري (Win32)؛ ستيف ميلر (واجهة مستخدم Windows CE)، جوني لي (MS-DOS، Win32، Zip64)، و ديف سميث (Tandem NSK).

الأشخاص التاليون كانوا أعضاء سابقين في مجموعة تطوير Info-ZIP وقدموا مساهمات كبيرة في الأجزاء الرئيسية من الكود الحالي: جريج "كاف نيو" رولوفس (UnZip، فك ضغط unshrink)؛ جان لوب جايللي (ضغط deflate)؛ مارك أدلر (فك ضغط inflate، fUnZip).

مؤلف كود unzip الأصلي الذي استندت إليه Info-ZIP هو صموئيل إتش. سميث؛ وقام كارل ماسكوت بأول عملية نقل إلى نظام Unix؛ وقام ديفيد بي. كيرشباوم بتنظيم وقيادة Info-ZIP في الأيام الأولى، حيث استضاف كيث بيترسن القائمة البريدية الأصلية في WSMR-SimTel20. لقد نما عدد المساهمين في UnZip بشكل كبير؛ يرجى الرجوع إلى ملف CONTRIBS في توزيعة مصدر UnZip للحصول على نسخة شبه كاملة.

الإصدارات

v1.2 15 مارس 1989 صموئيل إتش. سميث v2.0 9 سبتمبر 1989 صموئيل إتش. سميث v2.x خريف 1989 العديد من المساهمين في Usenet v3.0 1 مايو 1990 Info-ZIP (DPK، المجمع) v3.1 15 أغسطس 1990 Info-ZIP (DPK، المجمع) v4.0 1 ديسمبر 1990 Info-ZIP (GRR، المسؤول) v4.1 12 مايو 1991 Info-ZIP v4.2 20 مارس 1992 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.0 21 أغسطس 1992 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.01 15 يناير 1993 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.1 7 فبراير 1994 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.11 2 أغسطس 1994 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.12 28 أغسطس 1994 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.2 30 أبريل 1996 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.3 22 أبريل 1997 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.31 31 مايو 1997 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.32 3 نوفمبر 1997 Info-ZIP (مجموعة Zip-Bugs، GRR) v5.4 28 نوفمبر 1998 Info-ZIP (مجموعة Zip-Bugs، SPC) v5.41 16 أبريل 2000 Info-ZIP (مجموعة Zip-Bugs، SPC) v5.42 14 يناير 2001 Info-ZIP (مجموعة Zip-Bugs، SPC) v5.5 17 فبراير 2002 Info-ZIP (مجموعة Zip-Bugs، SPC) v5.51 22 مايو 2004 Info-ZIP (مجموعة Zip-Bugs، SPC) v5.52 28 فبراير 2005 Info-ZIP (مجموعة Zip-Bugs، SPC) v6.0 20 أبريل 2009 Info-ZIP (مجموعة Zip-Bugs، SPC)