فرمت ZIP معروف‌ترین فرمت آرشیو در سیستم عامل‌های امروزی است و در واقع ویندوز، مک‌او‌اس و لینوکس از این فرمت کاملاً پشتیبانی می‌کنند و بدون استفاده از اپلیکیشن جانبی می‌توان فایل و فولدرها را فشرده و زیپ کرد و فایل‌های زیپ را از حالت فشرده خارج کرد.

در توزیعات مختلف Linux می‌توانید با فرمان zip و از طریق ترمینال، فایل و فولدرها را فشرده کنید و با فرمت ZIP ذخیره کنید. در ادامه به روش کار با این فرمان می‌پردازیم.

محبوبیت ZIP و مزیت اصلی آن نسبت به فرمت‌های دیگر

نرم‌افزارهای زیادی برای فشرده‌سازی و آرشیو کردن فولدرهای حاوی فایل وجود دارد و به همین ترتیب تعداد زیادی فرمت آرشیو در ویندوز، مک‌او‌اس و لینوکس و همین‌طور اندروید و iOS مورد استفاده قرار می‌گیرد اما بسیاری از فرمت‌ها بدون نصب کردن نرم‌افزار اضافی، قابلیت اکسترکت کردن ندارند.

منظور از Extract کردن، استخراج فایل‌های فشرده درون فایل آرشیو است.

فرمت زیپ یکی از فرمت‌هایی است که به خوبی در سیستم عامل‌های مختلف پشتیبانی می‌شود. لذا کاربرد بسیار وسیعی و به محبوب‌ترین فرمت آرشیو تبدیل شده است.

مزیت اصلی فرمت ZIP موضوع فشرده‌سازی نیست چرا که فرمت‌های زیادی از نظر فشرده‌سازی و حتی سرعت فشرده‌سازی، وضعیت بهتری دارند. به عنوان مثال tar.gz و tar.bz2 از نظر میزان فشرده‌سازی، بهتر از ZIP هستند اما مثل زیپ در هر سیستم عاملی به خوبی پشتیبانی نمی‌شوند و لذا دامنه‌ی کاربری محدودتر است.

ابزارهای Zip و Unzip و غیره در لینوکس

در Linux برای زیپ کردن و از حالت فشرده خارج کردن فایل ZIP از ابزارهای zip‌ و unzip استفاده می‌شود و در کنار این ابزارها، چند ابزار دیگر برای چک کردن محتویات فایل زیپ و پسورد گذاشتن روی آن و همین‌طور تکه‌تکه کردن فایل زیپ وجود دارد که در مجالی دیگر به معرفی این ابزارها و دستورات مربوطه می‌پردازیم.

در برخی توزیعات لینوکس ممکن است تمام ابزارهای موردبحث به صورت پیش‌فرض نصب نشده باشد اما خوشبختانه دانلود و نصب این اپلیکیشن‌ها بسیار ساده است. در لینوکس اوبونتو نسخه‌ی 19.04 و 18.04 و 18.10 این ابزارها موجود است. در Manjaro 18.04 نیز همگی ابزارها موجود است. در لینوکس Fedora 29 یا CentOS صرفاً دو ابزار zip و unzip به صورت پیش‌فرض نصب شده و ابزارهای کمکی دیگر موجود نیست.

و اما روش نصب کردن ابزارهای اضافی: در فدورا ۲۹ با اجرا کردن دستور زیر در ترمینال، می‌توانید این اپلیکیشن‌ها را نصب کنید:

اگر حساب کاربری سوپریوزر دارای پسورد است، پسورد را در ادامه تایپ کنید تا دانلود و نصب انجام شود.

در CentOS 7 نیز با اجرا کردن فرمان زیر می‌توانید ابزارهای مرتبط با فایل‌های زیپ را نصب کنید:

در صورت نیاز پسورد را پس از اجرای دستور فوق تایپ کنید و Enter را فشار دهید:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

در سایر توزیعات از ابزار مدیریت پکیج‌ها برای دانلود و نصب ابزارهای زیپ استفاده کنید.

آموزش ایجاد فایل زیپ در لینوکس با فرمان zip

برای ایجاد فایل زیپ، می‌بایست پس از دستور zip نام فایل زیپ را با یا بدون پسوند zip تایپ کنید و در ادامه نام فایل یا فایل‌هایی که می‌بایست در فایل زیپ فشرده شود را تایپ کنید.

این دستور هم مثل اغلب دستورها از Wildcard پشتیبانی می‌کند و در واقع می‌توانید از عبارت‌های منظم برای نوشتن نام گروهی از فایل‌ها استفاده کنید. به عنوان مثال اگر بخواهید تمام فایل‌هایی که پسوندشان .c و همین‌طور .h است و در فولدر کاری فعلی قرار دارند را در فایلی به اسم source_code به صورت فشرده قرار بدهید، می‌توانید دستور زیر را اجرا کنید:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

پس از وارد کردن فرمان فوق و زدن کلید Enter، نام هر فایلی که در آرشیو زیپ اضافه می‌شود، در ترمینال ذکر می‌شود و در پرانتز درصد فشرده‌سازی نیز نمایش داده می‌شود:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

پسوند zip نیز به صورت خودکار در انتهای نام فایل آرشیو اضافه می‌شود. می‌توانید این موضوع را با اجرا کردن فرمان زیر چک کنید:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

اگر به نمایش گزارش حین زیپ کردن فایل‌ها نیاز ندارید، از آپشن -q که مخفف quiet است استفاده کنید. در مورد مثال قبلی این آپشن را پس از فرمان zip اضافه کنید:

همان‌طور که در تصویر زیر مشاهده می‌کنید نام فایل‌ها و درصد فشرده‌سازی لیست نمی‌شود:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

زیپ کردن فولدرها به کمک ترمینال

برای زیپ کردن فولدرها هم می‌توانید از دستور zip استفاده کنید. کافی است آپشن -r که مخفف recursive است را اضافه کنید و همین‌طور نام فولدر موردنظر را مثل نام فایل یا فایل‌ها تایپ کنید. در این صورت تمام فولدرها و فولدرهای زیرمجموعه‌شان در فایل آرشیو قرار می‌گیرند.

به عنوان مثال اگر دستور زیر را تایپ کنید:

و Enter را فشار دهید، علاوه بر فایل‌هایی که پسوند c و h دارند، محتویات فولدر archive نیز زیپ می‌شود.

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

دستور زیر هم تمام محتویات فولدر work را به صورت یک فایل زیپ فشرده می‌کند:

توجه داشته باشید که می‌بایست ابتدا فولدر کاری را با فرمان CD تغییر بدهید و فولدر بالادست work را فعال کنید.

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

تنظیم کردن میزان فشرده‌سازی zip در لینوکس

برای تنظیم کردن میزان فشرده‌سازی می‌توانید یکی از عددهای ۰ الی ۹ را وارد کنید. عدد ۹ معادل بالاترین سطح فشرده‌سازی است و طبعاً پردازش طولانی‌تر و حجم فایل نهایی کمتر خواهد بود. عدد ۰ نیز موجب ایجاد آرشیو بدون فشرده‌سازی می‌شود! حالت پیش‌فرض عدد ۶ است که توازنی بین سرعت فشرده‌سازی و میزان فشرده‌سازی برقرار می‌کند.

میزان فشرده‌سازی را پس از خط فاصله و پس از دستور zip‌ تایپ کنید. مثل نمونه‌ی زیر:

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

اگر عدد ۶ مطلوب باشد، نیازی به وارد کردن -6‌ نیست چرا که این عدد حالت پیش‌فرض است.

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip

و حالت فشرده‌سازی حداکثر با نمونه دستور زیر انجام می‌شود:

همان‌طور که در تصویر زیر مشاهده می‌کنید، با اجرا کردن فرمان ls به منظور لیست کردن فایل‌ها، ظرفیت فایل زیپ ایجاد شده ۲۱۳ کیلوبایت است در حالی که بدون فشرده‌سازی، یا در واقع با استفاده از عدد ۰، حجم فایل نهایی ۲۱۷ کیلوبایت بود. البته در مورد فایل‌های مختلف درصد فشرده‌سازی متفاوت است. به عبارت دیگر برخی فایل‌ها به خوبی فشرده‌ می‌شوند و استفاده از عدد ۹ به جای عدد ۶ یا ۰، کاهش حجم زیادی به دنبال دارد.

آموزش زیپ کردن فایل و فولدر در لینوکس با دستور zip