صفر تا صد زیپ و آنزیپ کردن فایل ها با ترمینال لینوکس
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
نصب دستورات گم شده در CentOS7:
sudo yum install perl-IO-Compress
بعد از نصب این ابزار برای ایجاد یک فایل زیپ میتوانیم از دستور zip استفاده کنیم به این صورت که نام فایل آرشیو را برای این دستور قید کنیم و این که کدام فایلها لازم است تا در این فایل فشرده قرار داده شوند. به عنوان مثال اگر بخواهیم یک فایل زیپ با نام source_code.zip را ایجاد کنیم که تمامی فایلهای کد منبع C و فایلهای هدر در دایرکتوری جاری را در بربگیرد لازم است تا از این دستور استفاده کنید:
zip source_code *.c *.h
بعد از اجرای دستور نام فایل و میزان فشردهسازی آن نشان داده میشود:
با نگاه به آرشیو زیپ جدید، میتوانید پسوند .zip را که به صورت خودکار اضافه شده است، مشاهده کنید.
گنجاندن دایرکتوریها در فایلهای ZIP در لینوکس
زمانی که نیاز باشد تا دایرکتوری فرعی را در فایل زیپ موردنظر خود در مرجع لینوکس بگنجانید لازم است تا از گزینه -r استفاده کنید. در این جا منظور از r بازگشتی است و از کلمه recursive گرفته شده است. همچنین باید دایرکتوری فرعی را در خط فرمان نام ببرید. برای گنجاندن دایرکتوری فرعی میتوانید از دستور زیر استفاده کنید:
zip -r -q source_code archive/ *.c *.h
به منظور جلوگیری از به وجودآمدن مشکل برای افرادی که نیاز دارند تا فایلهای فشرده را از آرشیو استخراج کنند، به طوری که همه فایلها به شکل منظم در یک دایرکتوری قرار گیرد، سعی کنید تا فایلهای موردنظر خود را درون یک دایرکتوری قرار دهید. برای آرشیو کردن دایرکتوری work و همه دایرکتوریهای فرعی آن میتوانید از دستور زیر استفاده کنید:
/zip -r -q source_code 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
فایلهای استخراج شده در پنجره ترمینال نشان داده میشوند:
با استفاده از گزینه -q در دستور آنزیپ دیگر فهرستبندی فایل های استخراجی نشان داده نمیشود:
unzip -q source_code.zip
استخراج فایلهای زیپ که با رمز عبور محافظت میشوند
زمانی که یک فایل زیپ را با رمز عبور ایجاد میکنید در هنگام آنزیپ کردن باید رمز عبور مربوطه را وارد کنید تا فایلها استخراج شوند. در صورت واردکردن رمز عبور اشتباهی عملیات استخراج انجام نمیشود:
unzip -q source_code.zip
گاهی اوقات اهمیتی ندارد که دیگران رمز عبور انتخابی شما را ببینند. در این حالت میتوانید با کمک دستور -P رمز عبور را در خط فرمان ذکر کنید. البته دقت کنید که حرف P باید بزرگ باشد.
unzip -P fifty.treacle.cutlass -q source_code.zip
در برخی مواقع قبل از عملیات استخراج نیاز دارید تا فایلهای درون آرشیو زیپ را ببینید. در این حالت یک خروجی قابلمدیریت با کمک دستور -I و less نشان داده میشود.
unzip -l source_code.zip | less
در خروجی میتوانید دایرکتوری و فایلهای درون آرشیو زیپ را ببینید. علاوه بر این طول و زمان و تاریخی که هر فایل به آرشیو اضافه شدهاند، نمایش داده میشود. برای خارجشدن از less میتوانید کاراکتر q را ارسال کنید.
سخن پایانی
ما در این مقاله توضیح دادیم که چگونه میتوان، عملیات زیپ و آنزیپ کردن فایل ها با ترمینال لینوکس را انجام داد. شما با فشردهسازی فایلها میتوانید تا حد زیادی در زمان و فضای ذخیرهسازی خود صرفهجویی کنید. ابزارهای لازم و دستوراتی که برای فشردهسازی نیاز دارید را معرفی کردیم. استخراج فایلها همانند فشردهسازی کار بسیار راحتی است و تنها با یک خط فرمان اجرا میشود. در آموزشهای مربوط به سیستم عامل لینوکس تمامی این دستورات همراه با نکاتشان توضیح داده شده است.