برای Extract کردن فایل‌های آرشیو یا به زبان دیگر از حالت فشرده خارج کردن فایل‌های داخل فایل‌هایی با فرمت ZIP و RAR و غیره، نرم‌افزارهای رایگان زیادی وجود دارد. در لینوکس می‌توانید از دستور و ابزاری به اسم unzip برای استخراج کردن محتویات فایل‌های زیپ استفاده کنید و نیاز به اپلیکیشن اضافی نیست هر چند ابزارهای کامل‌تر، گرافیکی و پیشرفته‌تری نیز برای این مهم وجود دارد.

در ادامه به روش استفاده از دستور unzip در Terminal توزیعات مختلف Linux می‌پردازیم.

فرمت زیپ فرمت محبوبی است چرا که در سیستم عامل‌های زیادی به صورت پیش‌فرض قابلیت بازگشایی دارد و نیازی به نصب کردن اپلیکیشن اضافی نیست. حتی اگر اپ جانبی ضروری باشد هم نرم‌افزارهای رایگان متعددی برای باز کردن فرمت ZIP وجود دارد. در لینوکس با فرمان zip می‌توانید فایل و فولدرها را به صورت فایل زیپ فشرده کنید. برای اطلاعات بیشتر به مقاله‌ی زیر توجه فرمایید:

اما موضوع این مقاله کار با دستور unzip در محیط ترمینال لینوکس و بازگشایی فایل‌های زیپ است.

آموزش استخراج فایل‌های ZIP با دستور unzip

برای استخراج فایل‌های موجود در فایل زیپ، کافی است نام فایل زیپ را پس از دستور unzip تایپ کنید. اگر فایل در فولدر کاری فعلی قرار نگرفته، فراموش نکنید که با دستور cd برای تغییر دادن پوشه‌ی کاری اقدام کنید.

دستور زیر موجب بازگشایی فایل source_code.zip می‌شود:

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

حین استخراج آرشیو زیپ، لیستی از فایل‌های داخل آن در محیط ترمینال نمایان می‌شود.

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

فایل‌های موجود در فایل ZIP، شامل جزئیات مربوط به مالکیت یا Ownership نمی‌شوند و لذا زمانی که فایل‌ها را با دستور unzip از حالت فشرده خارج می‌کنید، مالک فایل‌ها حساب کاربری فعلی خواهد بود.

اگر نخواهید لیستی از فایل‌های استخراج شده در ترمینال نمایش داده شود، می‌توانید پس از دستور unzip از آپشن -q که مخفف quiet یا ساکت است، استفاده کنید:

و نتیجه استخراج کامل فایل زیپ بدون ذکر نام فایل‌ها است:

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

استخراج کردن فایل‌های ZIP در فولدر دلخواه

اگر بخواهید فایل‌های موجود در آرشیوی را اکسترکت کنید اما فولدر مقصد، فولدر فعلی نباشد، می‌بایست آپشن -d که مخفف directory است را پس از دستور unzip اضافه کنید و پس از این آپشن، آدرس فولدر مقصد را تایپ کنید.

به عنوان مثال با اجرا کردن فرمان زیر، فایل زیپ در فولدری به اسم /development اکسترکت می‌شود:

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

نحوه اکسترکت کردن فایل‌های ZIP دارای پسورد از طریق ترمینال لینوکس

اگر فایل زیپ از نوع رمزگذاری شده است و به عبارت دیگر پسورد دارد، برای اکسترکت کردن آن می‌بایست از دستور unzip استفاده کنید و نیازی به اضافه کردن آپشن یا عبارت خاصی نیست. در واقع زمانی که دستور آنزیپ کردن را با زدن Enter اجرا می‌کنید، از شما در مورد پسورد فایل سوال می‌شود. کافی است پسورد را تایپ کرده و Enter را فشار دهید.

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

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

روش دیگر این است که از آپشن -P استفاده کنید که البته توصیه نمی‌شود چرا که در صورت استفاده از این آپشن، می‌بایست پسورد فایل زیپ را پس از دستور unzip و آپشن -P تایپ کنید و در نتیجه پسورد نمایش داده می‌شود و این برای حفظ حریم خصوصی خوب نیست!

اگر کسی در اطراف شما باشد یا به سیستم لینوکسی و حساب کاربری فعلی دسترسی داشته باشد، می‌تواند پسورد را ببیند یا سوابق دستورات تایپ شده در ترمینال را بررسی کرده و متوجه شود که رمز عبور فایل zip چه بوده است!

به نمونه‌ای از کاربرد این آپشن توجه کنید:

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

اکسترکت کردن آرشیو ZIP با نادیده گرفتن فایل یا فولدرها

برای نادیده گرفتن چند فایل و فولدر یا به زبان دیگر برای Exclude کردن، می‌توانید از آپشن -x استفاده کنید و پس از این آپشن، نام فایل‌ها و فولدرهای موردنظر را تایپ کنید. می‌توانید از Wildcard هم استفاده کنید. به عنوان مثال اگر بخواهید آرشیو zip را اکسترکت کنید و فایل‌هایی با پسوند h را نادیده بگیرید، دستور زیر مناسب است:

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

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

ممکن است فایل ZIP‌ حاوی فایل‌هایی باشد که نامشان با فایل‌های موجود در فولدر فعلی یا فولدر مقصد، یکسان است. در این صورت می‌توانید فایل‌ها را Overwrite یا بازنویسی کنید. اگر بخواهید چنین کاری انجام بدهید، در مورد جایگزین کردن فایل‌های قبلی سوال می‌شود و می‌توانید فایل‌ها را بازنویسی کنید یا از اکسترکت کردن خودداری کنید و همین‌طور می‌توانید فایل جدید را با تغییر دادن نام، اکسترکت کنید تا فایلی بازنویسی و حذف نشود.

برای پاسخ به سوال موردبحث می‌توانید یکی از حروف y‌ و n  و A و N‌ و یا r را تایپ کنید و Enter را فشار دهید. هر یک معنای خاصی دارد که در ادامه توضیح می‌دهیم.

  • y: معادل Yes یا بله است و فایل اکسترکت شده جای فایل سابق را می‌گیرد.
  • n: معادل No است و فایل اکسترکت نمی‌شود.
  • A: معادل All است و تمام فایل‌های قبلی بازنویسی می‌شوند.
  • N: معادل None یا هیچ است و هیچ فایلی که نام یکسان دارد، اکسترکت نمی‌شود و جای فایل‌های سابق را نمی‌گیرد.
  • r: یا Rename به معنی تغییر نام است. اگر پاسخ شما حرف r باشد، می‌بایست نامی برای فایل‌های جدید که نامشان تکراری است، تایپ کنید. بنابراین هم فایل سابق و هم فایل جدید در مسیر انتخابی موجود خواهد بود.

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

برای اکسترکت کردن فایل ZIP بدون نمایش سوال در مورد موجود بودن فایل‌ها و نیاز به بازنویسی، از آپشن -o که مخفف Overwrite است، استفاده کنید. در این صورت تمام فایل‌های قبلی که نامشان یکسان است، از بین می‌رود و فایل جدیدی که از آرشیو ZIP استخراج شده، جایشان را می‌گیرد.

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس

روش دیگر این است که از آپشن -n یا never overwrite استفاده کنید که برعکس آپشن -o است و هیچ فایلی را بازنویسی نمی‌کند.

آموزش اکسترکت کردن فایل‌های ZIP‌ با دستور unzip در ترمینال لینوکس