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

ZIP یکی از فرمت‌های رایج و کاربردی در آرشیو سیستم عامل‌های ویندوز، لینوکس و macOS است. فایل زیپ یکی از روش‌های ساده و پرطرفدار برای ساخت فایل‌های فشرده در حالت آرشیوی است و در عین قدیمی بودن محبوبیت‌های زیادی در میان کاربران سیستم عامل‌های مختلف دارد. زیپ و آنزیپ کردن فایل‌ ها یکی از اقداماتی است که تمامی کاربران در اکثر مواقع به انجام این کار نیاز دارند. در ترمینال لینوکس دستوراتی وجود دارد که با کمک آن‌ها می‌توان عملیات Zip و Unzip کردن فایل‌ها را انجام داد. شما با آموزش سیستم عامل لینوکس می‌توانید با این دستورات به طور کامل آشنا شوید با این حال ما قصد داریم تا در ادامه این مطلب دستورات ساده و اصلی زیپ و آنزیپ کردن فایل ها با ترمینال لینوکس را به شما معرفی کنیم.

فرمت ZIP چیست؟

کاربردی‌ترین حالت آرشیو فشرده در محیط ویندوز، فایل‌های زیپ هستند. با وجود رایج بودن فایل‌های tar.gz و tar.bz2 در لینوکس، کاربران ویندوز برای ارسال فایل‌های فشرده از قالب zip استفاده می‌کنند. در صورتی که به دنبال فشرده‌سازی فایل‌ها و ارسال آن برای کاربران ویندوز هستید، قالب zip ساده‌ترین راه‌حل برای کاربران خواهد بود.

ایجاد فایل زیپ با دستور zip در لینوکس

در سیستم عامل‌های لینوکس و شبه Unix با استفاده از ابزارهایی به خصوص می‌توان فایل‌ های زیپ را ایجاد کرد و یا این که برای استخراج فایل‌ها از این دستورات کمک گرفت. به ابزارهایی که برای انجام این دو کار مورداستفاده قرار می‌گیرند، به ترتیب زیپ (zip) و آنزیپ ( unzip) گفته می‌شود. البته مجموعه دیگری از ترفندهای لینوکس در این زمینه وجود دارند که از جمله آن‌ها می‌توان به zipsplit، zipdetails، zipcloak و zipinfo اشاره کرد.


بیشتر بخوانید: دستورات مخرب در محیط ترمینال لینوکس


تمامی این ابزارها به یک خانواده تعلق دارند و در اوبونتو 19.04، 18.10 و 18.04 و همچنین توزیع Manjaro 18.04 قرار گرفته‌اند. در توزیع Fedora 29 و CentOS از لینوکس به غیراز ابزارهای zip و unzip ابزارهای دیگر وجود ندارد. در صورتی که قصد داشته باشید تا این ابزارهای گم شده را در این دو توزیع آخر از لینوکس نصب کنید لازم است تا طبق دستورات زیر عمل کنید:

نصب دستورات گم شده در Fedora 29:

sudo dnf install perl-IO-Compress

نصب دستورات گم شده در Fedora 29

نصب دستورات گم شده در CentOS7:

sudo yum install perl-IO-Compress

نصب دستورات گم شده در CentOS7

بعد از نصب این ابزار برای ایجاد یک فایل زیپ می‌توانیم از دستور zip استفاده کنیم به این صورت که نام فایل آرشیو را برای این دستور قید کنیم و این که کدام فایل‌ها لازم است تا در این فایل فشرده قرار داده شوند. به عنوان‌ مثال اگر بخواهیم یک فایل زیپ با نام source_code.zip را ایجاد کنیم که تمامی فایل‌های کد منبع C و فایل‌های هدر در دایرکتوری جاری را در بربگیرد لازم است تا از این دستور استفاده کنید:

zip source_code *.c *.h

فایل زیپ source_code.zip

بعد از اجرای دستور نام فایل و میزان فشرده‌سازی آن نشان داده می‌شود:

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

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

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

زمانی که نیاز باشد تا دایرکتوری فرعی را در فایل زیپ موردنظر خود در مرجع لینوکس بگنجانید لازم است تا از گزینه -r استفاده کنید. در این جا منظور از r بازگشتی است و از کلمه recursive گرفته شده است. همچنین باید دایرکتوری فرعی را در خط فرمان نام ببرید. برای گنجاندن دایرکتوری فرعی می‌توانید از دستور زیر استفاده کنید:

zip -r -q source_code archive/ *.c *.h

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

به منظور جلوگیری از به وجودآمدن مشکل برای افرادی که نیاز دارند تا فایل‌های فشرده را از آرشیو استخراج کنند، به طوری که همه فایل‌ها به شکل منظم در یک دایرکتوری قرار گیرد، سعی کنید تا فایل‌های موردنظر خود را درون یک دایرکتوری قرار دهید. برای آرشیو کردن دایرکتوری work و همه دایرکتوری‌های فرعی آن می‌توانید از دستور زیر استفاده کنید:

/zip -r -q source_code work

آرشیو کردن دایرکتوری work

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

زمانی که قصد ایجاد یک آرشیو zip از فایل‌های مدنظر خود را دارید، می‌توانید میزان فشرده‌سازی آن‌ها را با یک دستور ساده تعیین کنید. بازه فشرده‌سازی می‌تواند از 0 تا 9 باشد. 0 عدم فشرده‌سازی را نشان می‌دهد و هر چه عدد آن افزایش پیدا کند میزان فشرده‌سازی بیشتر می‌شود. با افزایش میزان فشرده‌سازی، زمان لازم برای انجام این کار نیز بالاتر می‌رود. در اندازه متوسط فایل‌های زیپ، چندان متوجه تفاوت‌های زمانی نخواهید شد؛ بنابراین معمولاً سطح فشرده‌سازی 6 می‌تواند برای اغلب فایل‌ها کافی باشد. برای نشان‌دادن سطح فشرده‌سازی لازم است تا علامت (-) را همراه با عدد موردنظر در خط فرمان قرار دهید:

/zip -0 -r -q source_code work

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

دقت کنید که به صورت پیش‌فرض سطح فشرده‌سازی عدد -6 است و در این حالت نیازی نیست که آن را در خط فرمان ذکر کنید. تفاوت بین سطح فشرده‌سازی 0 و 6 برابر با 400 کیلوبایت است در حالی که تفاوت بین سطح 6 و سطح 9 برابر با 4 کیلوبایت است. البته این تفاوت‌ها به نوع فایل و دایرکتوری‌های منتخب شما نیز بستگی دارد. در آرشیوهایی با تعداد فایل‌های بسیار زیاد این فشرده‌سازی‌ها می‌تواند تا حد زیادی در فضای موردنظر شما صرفه‌جویی کند.

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

برای این که بتوانید برای فایل‌ های زیپ خود رمز عبور ایجاد کنید تنها لازم است تا گزینه -e را در خط فرمان خود به کار ببرید. حرف e به کلمه encrypt یعنی رمزگذاری برمی‌گردد. با این دستور از شما درخواست یک رمز عبور می‌شود که باید برای تأیید شدن، آن را دوباره وارد کنید.

/zip -e -r -q source_code work

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

آنزیپ کردن با دستور unzip در لینوکس

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

unzip source_code.zip

آنزیپ کردن با دستور unzip در لینوکس

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

فایل‌های استخراج شده در پنجره ترمینال

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

unzip -q source_code.zip

دستور آنزیپ

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

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

unzip -q source_code.zip

 

گاهی اوقات اهمیتی ندارد که دیگران رمز عبور انتخابی شما را ببینند. در این حالت می‌توانید با کمک دستور -P رمز عبور را در خط فرمان ذکر کنید. البته دقت کنید که حرف P باید بزرگ باشد.

unzip -P fifty.treacle.cutlass -q source_code.zip

دستورP-

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

unzip -l source_code.zip | less

بررسی محتوای داخل یک فایل ZIP در لینوکس

در خروجی می‌توانید دایرکتوری و فایل‌های درون آرشیو زیپ را ببینید. علاوه بر این طول و زمان و تاریخی که هر فایل به آرشیو اضافه شده‌اند، نمایش داده می‌شود. برای خارج‌شدن از less می‌توانید کاراکتر q را ارسال کنید.

سخن پایانی

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

- تبلیغات -

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.