| ZIPINFO(1L) | ZIPINFO(1L) |
نام (NAME)
zipinfo - فهرست کردن اطلاعات تفصیلی درباره یک بایگانی ZIP
خلاصه دستور (SYNOPSIS)
zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]
unzip -Z [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]
توضیحات (DESCRIPTION)
دستور zipinfo اطلاعات فنی مربوط به فایلهای درون یک بایگانی ZIP (که اغلب در سیستمهای MS-DOS یافت میشوند) را فهرست میکند. چنین اطلاعاتی مواردی چون مجوزهای دسترسی به فایل، وضعیت رمزگذاری، نوع فشردهسازی، نسخه و سیستمعامل یا فایلسیستم برنامه فشردهساز و موارد مشابه را در بر میگیرد. رفتار پیشفرض (بدون هیچ گزینهای) فهرست کردن مدخلهای تکخطی برای هر فایل در بایگانی است، همراه با خطوط سرآیند و پسایند که اطلاعات خلاصهای از کل بایگانی ارائه میدهند. قالب خروجی چیزی بین خروجی دستورهای «ls -l» و «unzip -v» در Unix است. بخش توضیحات تفصیلی (DETAILED DESCRIPTION) در زیر را ببینید. توجه داشته باشید که zipinfo همان برنامه unzip است (در Unix پیوندی به آن است)؛ با این حال در برخی سیستمها، ممکن است هنگام کامپایل unzip پشتیبانی از zipinfo حذف شده باشد.
آرگومانها (ARGUMENTS)
- file[.zip]
- مسیر بایگانی(های) ZIP. اگر مشخصات فایل حاوی نویسههای عام (wildcard) باشد، هر فایل منطبق با ترتیبی که توسط سیستمعامل (یا فایلسیستم) تعیین میشود پردازش میگردد. تنها نام فایل میتواند شامل نویسه عام باشد؛ خود مسیر نمیتواند. عبارتهای عام شبیه عبارتهای (منظم) egrep(1) در Unix هستند و میتوانند شامل موارد زیر باشند:
- *
- با توالیای از ۰ یا چند نویسه مطابقت دارد
- ?
- دقیقاً با ۱ نویسه مطابقت دارد
- [...]
- با هر نویسه تکی موجود در درون قلابها مطابقت دارد؛ بازهها با یک نویسه آغازین، یک خط پیوند و یک نویسه پایانی مشخص میشوند. اگر بلافاصله پس از قلاب باز، یک علامت تعجب یا یک علامت توان/هشتک ('!' یا '^') بیاید، در این صورت دامنه نویسههای درون قلابها متمم میشود (به این معنی که هر چیزی بهجز نویسههای داخل قلاب به عنوان تطابق در نظر گرفته میشود). برای مشخص کردن یک نویسه قلاب باز به صورت دقیق، باید از توالی سهنویسهای «[[]» استفاده شود.
- (حتماً هر نویسهای را که در غیر این صورت ممکن است توسط سیستمعامل تفسیر یا دستکاری شود، بهویژه در Unix و VMS، در نقلقول قرار دهید.) اگر هیچ تطابقی پیدا نشود، عبارت مشخصشده به عنوان یک نام فایل دقیق فرض میشود؛ و اگر آن هم پیدا نشود، پسوند .zip به انتهای آن افزوده میگردد. توجه داشته باشید که فایلهای ZIP خوداستخراجگر نیز همانند هر بایگانی ZIP دیگری پشتیبانی میشوند؛ فقط در صورت وجود پسوند .exe آن را به صورت صریح مشخص کنید.
- [file(s)]
- فهرستی اختیاری از اعضای بایگانی برای پردازش، که با فاصله از یکدیگر جدا شدهاند. (در نسخههای VMS کامپایلشده با تعریف VMSCLI باید فایلها به جای فاصله با کاما از هم جدا شوند.) برای تطبیق با چند عضو میتوان از عبارتهای منظم (نویسههای عام) استفاده کرد؛ بخش بالا را ببینید. مجدداً، حتماً عبارتهایی را که ممکن است در غیر این صورت توسط سیستمعامل بسط یافته یا دستکاری شوند، در نقلقول قرار دهید.
- [-x xfile(s)]
- فهرستی اختیاری از اعضای بایگانی که باید از پردازش مستثنی شوند.
- -1
- فقط نام فایلها را، یکی در هر خط، فهرست میکند. این گزینه مانع اجرای تمام گزینههای دیگر میشود؛ سرآیندها، پسایندها و توضیحات فایل zip هرگز چاپ نمیشوند. این گزینه برای استفاده در اسکریپتهای پوستهٔ Unix در نظر گرفته شده است.
- -2
- فقط نام فایلها را، یکی در هر خط، فهرست میکند، اما اجازهٔ نمایش سرآیندها (-h)، پسایندها (-t) و توضیحات فایل zip (-z) را نیز میدهد. این گزینه ممکن است در مواردی که نام فایلهای ذخیرهشده بهطور ویژه طولانی هستند، مفید باشد.
- -s
- اطلاعات فایل zip را در قالب کوتاه شبیه به «ls -l» یونیکس فهرست میکند. این رفتار پیشفرض است؛ در زیر ببینید.
- -m
- اطلاعات فایل zip را در قالب متوسط شبیه به «ls -l» یونیکس فهرست میکند. همسان با خروجی -s است، جز اینکه ضریب فشردهسازی نیز به صورت درصد فهرست میشود.
- -l
- اطلاعات فایل zip را در قالب بلند شبیه به «ls -l» یونیکس فهرست میکند. مانند -m است، با این تفاوت که به جای نسبت فشردهسازی، اندازهٔ فشردهشده (به بایت) چاپ میشود.
- -v
- اطلاعات فایل zip را در قالبی پرگو (verbose) و چندصفحهای فهرست میکند.
- -h
- خط سرآیند را فهرست میکند. نام بایگانی، اندازهٔ واقعی (به بایت) و تعداد کل فایلها چاپ میشود.
- -M
- تمام خروجی را از طریق یک صفحهبند داخلی مشابه دستور more(1) در Unix هدایت (pipe) میکند. در پایان یک صفحهٔ کامل از خروجی، zipinfo با اعلان «--More--» مکث میکند؛ صفحهٔ بعدی را میتوان با فشردن کلید Enter (یا Return) یا کلید فاصله (Space) مشاهده کرد. اجرای zipinfo را میتوان با فشردن کلید «q» و در برخی سیستمها با کلید Enter/Return خاتمه داد. بر خلاف more(1) در Unix، هیچ قابلیت جستوجوی روبهجلو یا ویرایشی وجود ندارد. همچنین، zipinfo متوجه شکسته شدن خطوط طولانی در لبهٔ صفحهٔ نمایش نمیشود، که عملاً باعث چاپ دو یا چند خط شده و این احتمال وجود دارد که پیش از دیده شدن، بخشی از متن از بالای صفحه به بیرون پیمایش (scroll) شود. در برخی سیستمها تعداد خطوط در دسترس صفحه تشخیص داده نمیشود که در این صورت zipinfo ارتفاع صفحه را ۲۴ خط فرض میکند.
- -t
- مجموع مقادیر را برای فایلهای فهرستشده یا برای همهٔ فایلها فهرست میکند. تعداد فایلهای فهرستشده، اندازهٔ کل آنها در حالت غیرفشرده و فشردهشده، و ضریب فشردهسازی کلی چاپ میشود؛ یا اگر تنها خط مجموع در حال چاپ باشد، مقادیر برای کل بایگانی ارائه میشوند. اندازهٔ فشردهشدهٔ کل شامل ۱۲ بایت سرآیند اضافی برای هر مدخل رمزگذاریشده نمیشود. توجه داشته باشید که اندازهٔ کل (دادههای) فشردهشده هرگز با اندازهٔ واقعی فایل zip مطابقت نخواهد داشت، زیرا مورد دوم علاوه بر دادههای فشرده، شامل تمام سرآیندهای داخلی فایل zip نیز میشود.
- -T
- تاریخها و زمانهای فایل را در قالب دهدهی و قابل مرتبسازی (yymmdd.hhmmss) چاپ میکند. قالب تاریخ پیشفرض، نسخهای استانداردتر و برای انسان خواناتر با نامهای مخففشدهٔ ماهها است (مثالهای زیر را ببینید).
- -U
- [تنها با UNICODE_SUPPORT] تغییر یا غیرفعالسازی مدیریت UTF-8. هنگامی که UNICODE_SUPPORT در دسترس باشد، گزینهٔ -U دستور unzip را وادار میکند تا تمام نویسههای غیر ASCII را در نامفایلهای کدگذاریشده با UTF-8 به صورت «#Uxxxx» نشانهگذاری (escape) کند. این گزینه عمدتاً برای اهداف اشکالزدایی ارائه شده است، زمانی که گمان میرود پشتیبانی نسبتاً جدید از UTF-8 نامفایلهای استخراجشده را مخدوش میکند.
- گزینهٔ -UU امکان غیرفعالسازی کامل شناسایی نامفایلهای کدگذاریشده با UTF-8 را فراهم میکند. در این حالت مدیریت کدگذاری نام فایلها در unzip به رفتار نسخههای پیشین بازمیگردد.
- -z
- توضیحات (comment) بایگانی (در صورت وجود) را در فهرست میآورد.
توضیحات تفصیلی (DETAILED DESCRIPTION)
دستور zipinfo حالتهای متعددی دارد و اگر کسی با ls(1) در Unix آشنایی نداشته باشد (یا حتی اگر آشنا باشد)، درک رفتار آن میتواند تا حدی دشوار باشد. رفتار پیشفرض این است که فایلها را در قالب زیر فهرست کند:
-rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660
سه فیلد آخر، تاریخ و زمان تغییر فایل و نام آن هستند. بزرگی و کوچکی حروف نام فایل حفظ میشود؛ بنابراین فایلهایی که از MS-DOS PKZIP میآیند همواره با حروف بزرگ هستند. اگر فایل با یک نام دایرکتوری ذخیرهشده فشرده شده باشد، آن نام نیز به عنوان بخشی از نام فایل نمایش داده میشود.
فیلدهای دوم و سوم نشان میدهند که فایل تحت Unix با نسخهٔ 1.9 از zip فشرده شده است. از آنجا که فایل از Unix میآید، مجوزهای فایل در ابتدای خط در قالب Unix چاپ میشوند. اندازهٔ فایل فشردهنشده (۲۸۰۲ در این مثال) فیلد چهارم است.
فیلد پنجم شامل دو نویسه است که هر کدام ممکن است چندین مقدار به خود بگیرند. نویسهٔ اول میتواند «t» یا «b» باشد که نشان میدهد zip به ترتیب فایل را متنی یا باینری تشخیص داده است؛ اما اگر فایل رمزگذاری شده باشد، zipinfo این موضوع را با بزرگ نوشتن نویسه («T» یا «B») مشخص میکند. نویسهٔ دوم نیز بسته به اینکه آیا یک سرآیند محلی گسترشیافته (extended local header) و/یا یک «فیلد اضافی» (extra field) مرتبط با فایل وجود دارد یا خیر، میتواند چهار مقدار بگیرد (بهطور کامل در سند APPNOTE.TXT شرکت PKWare توضیح داده شده است، اما اساساً مشابه عملوندهای pragma در ANSI C هستند؛ یعنی راهکاری استاندارد برای گنجاندن اطلاعات غیر استاندارد در بایگانی فراهم میکنند). اگر هیچکدام وجود نداشته باشد، نویسه یک خط پیوند («-») خواهد بود؛ اگر سرآیند محلی گسترشیافته وجود داشته باشد اما فیلد اضافی نباشد، «l»؛ اگر برعکس باشد، «x»؛ و اگر هر دو وجود داشته باشند، «X». بنابراین فایل موجود در این مثال (احتمالاً) یک فایل متنی است، رمزگذاری نشده و نه فیلد اضافی و نه سرآیند محلی گسترشیافتهای همراه خود دارد. از طرف دیگر، مثال زیر یک فایل باینری رمزگذاریشده همراه با یک فیلد اضافی است:
RWD,R,R 0.9 vms 168 Bx shrk 9-Aug-91 19:15 perms.0644
فیلدهای اضافی برای اهداف گوناگونی استفاده میشوند (بحث پیرامون گزینهٔ -v در زیر را ببینید) از جمله ذخیرهسازی مشخصههای فایل در VMS، که احتمالاً در اینجا نیز چنین است. توجه داشته باشید که مشخصههای فایل در قالب VMS فهرست شدهاند. برخی دیگر از احتمالات برای سیستمعامل میزبان (که در واقع اصطلاحی نادرست است و «سیستمفایل میزبان» صحیحتر است) شامل OS/2 یا NT با سامانه فایل با کارایی بالا (HPFS)، داس (MS-DOS)، سیستمهای OS/2 یا NT با سامانه فایل جدول تخصیص فایل (FAT)، و Macintosh هستند. این موارد به شرح زیر نشان داده میشوند:
-rw-a-- 1.0 hpf 5358 Tl i4:3 4-Dec-91 11:33 longfilename.hpfs
-r--ahs 1.1 fat 4096 b- i4:2 14-Jul-91 12:58 EA DATA. SF
--w------- 1.0 mac 17357 bx i8:2 4-May-92 04:02 unzip.macr
مشخصههای فایل در دو مورد اول در قالبی شبهیونیکس نمایش داده میشوند، که در آن هفت زیرفیلد مشخص میکنند آیا فایل: (۱) یک دایرکتوری است، (۲) قابل خواندن است (همیشه درست)، (۳) قابل نوشتن است، (۴) قابل اجرا است (بر اساس پسوند فایل حدس زده میشود؛ فایلهای .exe، .com، .bat، .cmd و .btm چنین فرض میشوند)، (۵) بیت بایگانی (archive bit) آن فعال است، (۶) مخفی است، و (۷) یک فایل سیستمی است. تفسیر مشخصههای فایل در Macintosh غیرقابل اتکا است زیرا برخی از برنامههای بایگانیساز Macintosh هیچ مشخصهای را در بایگانی ذخیره نمیکنند.
در نهایت، فیلد ششم روش فشردهسازی و احتمالاً زیرروش مورد استفاده را مشخص میکند. در حال حاضر شش روش شناخته شده است: ذخیره بدون فشردهسازی (storing)، تقلیل (reducing)، کوچکسازی (shrinking)، درونپاشی (imploding)، نشانهگذاری (tokenizing - هرگز به صورت عمومی منتشر نشد) و دیفلیت (deflating). علاوه بر این، چهار سطح برای تقلیل (۱ تا ۴)؛ چهار نوع درونپاشی (دیکشنری لغزندهٔ 4K یا 8K، و ۲ یا ۳ درخت Shannon-Fano)؛ و چهار سطح دیفلیت (فوقسریع، سریع، عادی و حداکثر فشردهسازی) وجود دارد. zipinfo این روشها و زیرروشهای آنها را به صورت زیر نمایش میدهد: stor؛ re:1، re:2 و غیره؛ shrk؛ i4:2، i8:3 و غیره؛ tokn؛ و defS، defF، defN و defX.
فهرستبندیهای متوسط و بلند تقریباً همسان با قالب کوتاه هستند، با این تفاوت که اطلاعاتی دربارهٔ فشردهسازی فایل اضافه میکنند. قالب متوسط ضریب فشردهسازی فایل را به صورت درصدی فهرست میکند که نشاندهندهٔ میزان فضای «حذفشده» است:
-rw-rws--- 1.5 unx 2802 t- 81% defX 11-Aug-91 13:48 perms.2660
در این مثال، اندازهٔ فایل بیش از ۵ برابر فشرده شده است؛ دادههای فشردهشده تنها ۱۹٪ اندازهٔ اولیه هستند. در مقابل، قالب بلند اندازهٔ فایل فشردهشده را به بایت ارائه میدهد:
-rw-rws--- 1.5 unx 2802 t- 538 defX 11-Aug-91 13:48 perms.2660
بر خلاف خروجیهای unzip، ارقام اندازهٔ فشردهشده در این قالب فهرستبندی، اندازهٔ کامل دادههای فشرده شامل ۱۲ بایت سرآیند اضافی در مدخلهای رمزگذاریشده را نشان میدهند.
افزودن گزینهٔ -T، تاریخ و زمان فایل را به قالب دهدهی تغییر میدهد:
-rw-rws--- 1.5 unx 2802 t- 538 defX 910811.134804 perms.2660
توجه داشته باشید که به دلیل محدودیتهای قالب MS-DOS مورد استفاده برای ذخیرهٔ زمان فایل، فیلد ثانیهها همیشه به نزدیکترین ثانیهٔ زوج گرد میشود. برای فایلهای Unix انتظار میرود این مسئله در نسخههای اصلی بعدی zip(1L) و unzip اصلاح شود.
علاوه بر اطلاعات تکتک فایلها، یک فهرستبندی پیشفرض از فایل zip شامل خطوط سرآیند و پسایند نیز میشود:
Archive: OS2.zip 5453 bytes 5 files
,,rw, 1.0 hpf 730 b- i4:3 26-Jun-92 23:40 Contents
,,rw, 1.0 hpf 3710 b- i4:3 26-Jun-92 23:33 makefile.os2
,,rw, 1.0 hpf 8753 b- i8:3 26-Jun-92 15:29 os2unzip.c
,,rw, 1.0 hpf 98 b- stor 21-Aug-91 15:34 unzip.def
,,rw, 1.0 hpf 95 b- stor 21-Aug-91 17:51 zipinfo.def
5 files, 13386 bytes uncompressed, 4951 bytes compressed: 63.0%خط سربرگ، نام آرشیو، اندازه کل آن و تعداد کل فایلها را نشان میدهد؛ خط پایانی، تعداد فایلهای فهرستشده، اندازه کل غیرفشرده و اندازه کل فشردهشده آنها را (بدون احتساب هیچیک از سربارهای داخلی zip) نشان میدهد. با این حال، اگر یک یا چند file(s) مشخص شده باشد، خطوط سربرگ و پایانی فهرست نمیشوند. این رفتار شبیه به «ls -l» در Unix است؛ میتوان این رفتار را با تعیین صریح گزینههای -h و -t تغییر داد. در چنین حالتی قالب فهرستبندی نیز باید صریحاً مشخص شود، زیرا تعیین -h یا -t (یا هر دو) در غیاب سایر گزینهها به این معناست که تنها خط سربرگ یا خط پایانی (یا هر دو) فهرست شود. برای توضیحی تا حدی مفهوم از این ماجرا، بخش مثالها (EXAMPLES) در ادامه را ببینید.
فهرستبندی باجزئیات (verbose) عمدتاً خودگویا است. همچنین این فهرست در صورت وجود، توضیحات فایل و توضیحات zipfile، و نوع و تعداد بایتهای هر فیلد اضافی ذخیرهشده را فهرست میکند. انواع فیلدهای اضافی شناختهشده کنونی شامل اطلاعات اعتبارسنجی PKWARE (یا «AV»)؛ ویژگیهای گسترشیافته OS/2؛ اطلاعات سیستمفایل VMS (هر دو نسخه PKWARE و Info-ZIP)؛ شاخههای منبع (resource forks) در Macintosh؛ اطلاعات SparkFS سیستمهای Acorn/Archimedes و غیره است. (توجه داشته باشید که در مورد ویژگیهای گسترشیافته OS/2 -- که شاید رایجترین کاربرد فیلدهای اضافی zipfile باشد -- اندازه EAهای ذخیرهشده گزارششده توسط zipinfo ممکن است با مقدار ارائهشده توسط دستور dir در OS/2 مطابقت نداشته باشد: سیستمعامل OS/2 همیشه تعداد بایتهای مورد نیاز را در قالب ۱۶ بیتی گزارش میکند، در حالی که zipinfo همیشه ذخیرهسازی ۳۲ بیتی را گزارش میدهد.)
مجدداً، ارقام اندازه فشردهشده ورودیهای مجزا شامل ۱۲ بایت سربرگ اضافی برای ورودیهای رمزگذاریشده است. در مقابل، اندازه فشردهشده کل آرشیو و نسبت میانگین فشردهسازی نشاندادهشده در خط خلاصه انتهایی، بدون این ۱۲ بایت سربرگ اضافی ورودیهای رمزگذاریشده محاسبه میشوند.
گزینههای محیطی (ENVIRONMENT OPTIONS)
تغییر رفتار پیشفرض zipinfo از طریق گزینههای قرار داده شده در یک متغیر محیطی ممکن است به دلیل تلاشهای zipinfo برای مدیریت پیشفرضهای گوناگون به شیوهای شهودی و در عین حال شبهیونیکسی، کمی پیچیده به نظر برسد. (سعی کنید نخندید.) با این وجود، منطقی در پس آن نهفته است. بهطور خلاصه، سه «سطح اولویت» برای گزینهها وجود دارد: گزینههای پیشفرض؛ گزینههای محیطی که میتوانند پیشفرضها را لغو کرده یا به آنها بیفزایند؛ و گزینههای صریحی که توسط کاربر تعیین میشوند و میتوانند هر یک از موارد فوق را لغو کرده یا به آنها اضافه شوند.
قالب پیشفرض فهرستبندی، همانطور که در بالا ذکر شد، تقریباً با دستور «zipinfo -hst» مطابقت دارد (به جز زمانی که اعضای خاصی از zipfile مشخص شده باشند). کاربری که قالب فهرستبندی طولانی (-l) را ترجیح میدهد، میتواند از متغیر محیطی zipinfo برای تغییر این پیشفرض استفاده کند:
- پوسته Bourne در Unix:
- ZIPINFO=-l; export ZIPINFO
- پوسته C در Unix:
- setenv ZIPINFO -l
- سیستمهای OS/2 یا MS-DOS:
- set ZIPINFO=-l
- سیستم VMS (نقلقول برای حروف کوچک):
- define ZIPINFO_OPTS "-l"
اگر علاوه بر این، کاربر مایل به نمایش خط پایانی نباشد، مفهوم «گزینههای منفی» در zipinfo میتواند برای لغو درج پیشفرض این خط استفاده شود. این کار با قرار دادن یک یا چند علامت منها قبل از گزینه نامطلوب انجام میشود: برای مثال، «-l-t» یا «--tl» در این مثال. اولین خط پیوند، نویسه معمول تغییر حالت (switch) است، اما علامت قبل از «t» یک علامت منها است. این کاربرد دوگانه از خط پیوند ممکن است کمی نامأنوس به نظر برسد، اما با این وجود نسبتاً شهودی است: کافی است اولین خط پیوند را نادیده بگیرید و از آنجا ادامه دهید. همچنین این رفتار با رفتار دستور یونیکسی nice(1) سازگار است.
همانطور که در بالا اشاره شد، نامهای متغیر پیشفرض عبارتند از ZIPINFO_OPTS برای VMS (جایی که نماد استفادهشده برای نصب zipinfo به عنوان یک دستور خارجی، در غیر این صورت با متغیر محیطی اشتباه گرفته میشد)، و ZIPINFO برای سایر سیستمهای عامل. برای سازگاری با zip(1L)، متغیر ZIPINFOOPT نیز پذیرفته میشود (علتش را نپرسید). با این حال، اگر هر دو متغیر ZIPINFO و ZIPINFOOPT تعریف شده باشند، اولویت با ZIPINFO خواهد بود. گزینه عیبیابیِ unzip (یعنی -v بدون ذکر نام فایل zipfile) میتواند برای بررسی مقادیر هر چهار متغیر محیطی ممکنِ unzip و zipinfo استفاده شود. برای دریافت یک فهرستبندی پایهای با قالب کوتاه از محتویات کامل بایگانی ZIP به نام storage.zip، به همراه هر دو سطر سرآیند و مجموع، کافی است فقط نام بایگانی را به عنوان آرگومان به zipinfo بدهید:
zipinfo storage
برای تولید یک فهرستبندی پایهای با قالب بلند (نه پرگو)، شامل سطرهای سرآیند و مجموع، از -l استفاده کنید:
zipinfo -l storage
برای فهرست کردن محتویات کامل بایگانی بدون سطرهای سرآیند و مجموع، یا گزینههای -h و -t را نفی کنید و یا محتویات را بهطور صریح مشخص نمایید:
zipinfo --h-t storage zipinfo storage \*
(که در آن بکاسلش تنها زمانی لازم است که پوسته در غیر این صورت نویسه عمومی (wildcard) «*» را بسط دهد، مانند یونیکس هنگامی که globbing فعال است؛ قرار دادن ستاره درون علامت نقلقول دوگانه نیز همین نتیجه را خواهد داشت). برای غیرفعال کردن سطر مجموع بهطور پیشفرض، از متغیر محیطی استفاده کنید (در اینجا پوسته C فرض شده است):
setenv ZIPINFO --t zipinfo storage
برای دریافت دوباره فهرستبندی کامل با قالب کوتاه در مثال اول، با فرض اینکه متغیر محیطی همانند مثال قبل تنظیم شده باشد، لازم است گزینه -s را بهطور صریح مشخص کنید، چرا که گزینه -t به تنهایی به این معنی است که تنها سطر پانویس باید چاپ شود:
setenv ZIPINFO --t zipinfo -t storage [فقط سطر مجموع] zipinfo -st storage [فهرست کامل]
گزینه -s مانند -m و -l، بهطور پیشفرض شامل سرآیندها و پانویسها میشود، مگر اینکه خلاف آن مشخص شده باشد. از آنجا که متغیر محیطی مشخص کرده بود پانویسی نباشد و این اولویت بالاتری نسبت به رفتار پیشفرض -s دارد، یک گزینه صریح -t برای تولید فهرست کامل لازم بود. با این حال، چیزی درباره سرآیند مشخص نشده بود، بنابراین گزینه -s کافی بود. توجه داشته باشید که هر دو گزینه -h و -t، هنگامی که به تنهایی یا همراه با یکدیگر استفاده شوند، هرگونه فهرستبندی پیشفرض فایلهای عضو را لغو میکنند؛ تنها سرآیند و/یا پانویس چاپ میشوند. این رفتار زمانی مفید است که zipinfo با یک الگوی عمومی نام فایل zip استفاده شود؛ در این صورت محتویات تمام فایلهای zip با یک فرمان خلاصه میشوند.
برای فهرست کردن اطلاعات مربوط به یک فایل منفرد درون بایگانی، با قالب متوسط، نام فایل را بهطور صریح مشخص کنید:
zipinfo -m storage unshrink.c
مشخص کردن هر فایل عضو، همانند این مثال، سطرهای پیشفرض سرآیند و مجموع را لغو میکند؛ تنها همان یک سطر اطلاعات درباره فایل درخواستی چاپ خواهد شد. این دقیقاً همان چیزی است که هنگام درخواست اطلاعات درباره یک فایل منفرد انتظار میرود. برای چندین فایل، اغلب دانستن مجموع اندازه فشردهشده و فشردهنشده مفید است؛ در چنین مواردی میتوان -t را بهطور صریح مشخص کرد:
zipinfo -mt storage "*.[ch]" Mak\*
برای دریافت بیشترین اطلاعات درباره بایگانی ZIP، از گزینه پرگو (verbose) استفاده کنید. معمولاً عاقلانه است که اگر سیستمعامل اجازه میدهد، خروجی را به پالایهای مانند more(1) در یونیکس هدایت (pipe) کنید:
zipinfo -v storage | more
در نهایت، برای مشاهده تازهترین فایلهای تغییریافته در بایگانی، از گزینه -T در ترکیب با یک ابزار مرتبسازی خارجی مانند sort(1) در یونیکس (و همچنین sed(1) در این مثال) استفاده کنید:
zipinfo -T storage | sort -nr -k 7 | sed 15q
گزینه -nr در sort(1) به آن میگوید که به جای ترتیب متنی، بر اساس ترتیب عددی معکوس مرتبسازی را انجام دهد، و گزینه -k 7 به آن میگوید که بر روی فیلد هفتم مرتب کند. این بر اساس قالب فهرستبندی کوتاه پیشفرض فرض شده است؛ اگر از -m یا -l استفاده شود، گزینه مناسب sort(1) به صورت -k 8 خواهد بود. نگارشهای قدیمیتر sort(1) از گزینه -k پشتیبانی نمیکنند، اما میتوانید به جای آن از گزینه سنتی + استفاده کنید، برای مثال +6 به جای -k 7. فرمان sed(1) همه خطوط فهرست به جز ۱۵ سطر اول را فیلتر میکند. انتشارهای آینده zipinfo ممکن است مرتبسازی بر اساس تاریخ/زمان و نام فایل را به عنوان گزینههای توکار دربرداشته باشند. به نظر نویسنده، تعریف نام مستعار (alias) ii برای zipinfo در سیستمهایی که از نام مستعار پشتیبانی میکنند (یا در سیستمهای دیگر، کپی/تغییر نام فایل اجرایی، ایجاد یک پیوند، یا ساخت یک فایل دستوری با نام ii) بسیار راحت و سودمند است. استفاده از ii همراستا با نام مستعار رایج ll برای فهرستبندیهای تفصیلی در Unix است، و شباهت بین خروجیهای این دو دستور تعمدی بوده است.
گزارش باگها (BUGS)
همانند unzip، گزینهٔ -M (``more'') در zipinfo در مدیریت خروجی صفحه بسیار سادهانگارانه عمل میکند؛ همانطور که در بالا ذکر شد، این گزینه شکستهشدن خطهای طولانی را تشخیص نمیدهد و ممکن است باعث شود خطوط بالای صفحه پیش از خواندهشدن، با پیمایش (اسکرول) به بیرون رانده شوند. zipinfo باید هر رخداد شکستهشدن خط را به عنوان یک خط چاپشدهٔ اضافی تشخیص دهد و با آن رفتار کند. این کار نیازمند آگاهی از عرض صفحه نمایش و همچنین ارتفاع آن است. علاوه بر این، zipinfo باید ابعاد واقعی صفحه (screen geometry) را در تمامی سیستمها تشخیص دهد.
رفتار قالب فهرستبندی zipinfo بیدلیل پیچیده است و باید سادهسازی شود. (البته این بدان معنا نیست که حتماً چنین خواهد شد.)
همچنین ببینید (SEE ALSO)
ls(1), funzip(1L), unzip(1L), unzipsfx(1L), zip(1L), zipcloak(1L), zipnote(1L), zipsplit(1L)
نشانی اینترنتی (URL)
صفحهٔ اصلی Info-ZIP در حال حاضر در نشانی زیر قرار دارد:
http://www.info-zip.org/pub/infozipیا
ftp://ftp.info-zip.org/pub/infozip .
نویسندگان (AUTHORS)
Greg ``Cave Newt'' Roelofs. نرمافزار ZipInfo حاوی کدهای تطبیق الگوی نوشتهشده توسط Mark Adler و اصلاحات/بهبودهایی از سوی افراد بسیار دیگری است. لطفاً برای مشاهدهٔ فهرست کاملتر به فایل CONTRIBS در توزیع کد منبع UnZip مراجعه کنید.
| 20 April 2009 (v3.0) | Info-ZIP |