نحوه زیپ کردن و آنزیپ کردن فایلها در لینوکس #
zipو unzipاز ابزارهای خط فرمان محبوب برای فشردهسازی و استخراج فایلها و دایرکتوریها در سیستمهای لینوکس هستند. zipچندین فایل و دایرکتوری را در یک آرشیو فشردهشده ترکیب میکند، در فضای ذخیرهسازی صرفهجویی میکند و مدیریت فایل را ساده میکند. unzipدر صورت نیاز، محتویات آرشیو شده را استخراج میکند.
این مقاله نحوه نصب لینوکس zipو unzipابزارهای آن برای فشردهسازی فایلها، بایگانی دایرکتوریها و استخراج محتوای بایگانی شده را توضیح میدهد.
پیش نیازها #
قبل از شروع، شما نیاز دارید:
- یک سرور مجازی با دسترسی root
نصب Zip و Unzip در لینوکس #
ابزارهای کاربردی zipو unzipاز طریق مدیریت بستههای پیشفرض در اکثر توزیعهای لینوکس در دسترس هستند. برای نصب هر دو ابزار با استفاده از مدیریت بستهای که با توزیع شما مطابقت دارد، مراحل زیر را دنبال کنید.
zipبرای نصب و unzipروی توزیعهای مبتنی بر دبیان، مراحل زیر را دنبال کنید .
- شاخص بسته را بهروزرسانی کنید
apt.کنسول$ sudo apt update - نصب کنید
zipوunzip.کنسول$ sudo apt install -y zip unzip
zipبرای نصب وunzipروی توزیعهای مبتنی بر RHEL، دستور زیر را اجرا کنید .کنسول$ sudo dnf install -y zip unzip
اگر از نسخه قدیمیتر Rocky Linux، AlmaLinux یا CentOS استفاده میکنید که از پشتیبانی نمیکند dnf، در دستور نصب، را dnfبا جایگزین کنید.yum
Arch Linux
zipبرای نصب و اجراunzipروی آرچ لینوکس، دستور زیر را اجرا کنید .کنسول$ sudo pacman -S zip unzip
zipبرای نصب وunzipاجرا روی openSUSE دستور زیر را اجرا کنید .کنسول$ sudo zypper install -y zip unzip
zipبرای نصب و unzipاجرای Alpine Linux مراحل زیر را دنبال کنید .
- شاخص بسته را بهروزرسانی کنید
apk.کنسول$ sudo apk update - نصب کنید
zipوunzip.کنسول$ sudo apk add zip unzip
فشردهسازی فایلها در لینوکس #
دستوری zipبرای ایجاد یک .zipفایل بایگانی که حجم فایل را کاهش میدهد و ذخیرهسازی یا اشتراکگذاری فایل را ساده میکند.
zipسینتکس دستور #
این zipدستور از سینتکس زیر استفاده میکند.
zip [OPTIONS]... [COMPRESSED_FILENAME] [FILES/DIRS TO COMPRESS]...کجا،
[OPTIONS]رفتار فرمان را تغییر دهید. این موارد اختیاری هستند. بخش بعدی برخی از گزینههای مهم را مورد بحث و بررسی قرار میدهد.[COMPRESSED_FILENAME]نام فایلی است که دستور باید پس از بایگانی فایلها ایجاد کند.[FILES/DIRS TO COMPRESS]فهرستی از فایلها یا دایرکتوریهایی است که میخواهید بایگانی کنید.
zipکاربرد فرمان #
- فشردهسازی یک فایل واحد در یک
.zipبایگانی.کنسول$ zip archive-name.zip file1.txtدستور بالا یک آرشیو با نام زیر ایجاد میکند
archive-name.zipکه شامل موارد زیر است:file1.txt. - چندین فایل را به یک بایگانی جدید یا موجود اضافه کنید.کنسول
$ zip archive-name.zip file1.txt file2.txt file3.txtدستور بالا فایلهای فهرستشده را به … اضافه میکند
archive-name.zip. اگر آرشیو وجود نداشته باشد، یک آرشیو جدید ایجاد میکند. اگر وجود داشته باشد، آرشیو را با فایلهای مشخصشده بهروزرسانی میکند. - سطح فشردهسازی را تنظیم کنید.
-۰برای سرعت بخشیدن به فرآیند زیپ بدون فشردهسازی استفاده کنید.-۹برای فشردهسازی فایل تا حد امکان از آن استفاده کنید.کنسول$ zip -9 archive-name.zip file.txt -Pاز گزینه تنظیم رمز عبور برای فایل فشرده (zip) استفاده کنید . فایلهای فشردهای که با رمز عبور محافظت میشوند، میتوانند به ایمنسازی فایلهای حساس در حین ذخیرهسازی یا انتقال کمک کنند.کنسول$ zip -P your_password archive-name.zip file4.txtدستور بالا
archive-name.zipفایلی حاوی ایجاد میکندfile4.txtکه توسط رمز عبور محافظت میشودyour_password.- از این پرچم برای حذف فایلهای خاص از بایگانی استفاده کنید
-x. این ویژگی هنگام فشردهسازی چندین فایل با استفاده از الگوی wildcard مفید است و میخواهید فایلهای خاصی را نادیده بگیرید.کنسول$ zip archive-name.zip *.txt -x secret.txtدستور بالا تمام
.txtفایلهای موجود در دایرکتوری را به آرشیو اضافه میکند به جزsecret.txt. -uاز این پرچم برای بهروزرسانی فایلهای موجود در بایگانی فقط در صورتی که فایل منبع جدیدتر باشد، استفاده کنید .کنسول$ zip -u archive-name.zip updatedfile.txtدستور بالا
updatedfile.txtدر صورتی که نسخه محلی از آخرین فایل زیپ تغییر کرده باشد، فایل آرشیو را بهروزرسانی میکند.- برای مشاهده خروجی دقیق هنگام فشردهسازی فایلها از این پرچم استفاده کنید
-v. خروجی مفصل، نام فایل، روش فشردهسازی و اندازه هر فایل اضافه شده به بایگانی را نشان میدهد.کنسول$ zip -v archive-name.zip file1.txt
خارج کردن فایلها از حالت فشرده در لینوکس #
از دستور unzip برای استخراج فایلها از یک .zipآرشیو استفاده کنید. میتوانید تمام فایلها را استخراج کنید، فایلهای خاصی را هدف قرار دهید یا فایلهای زیپ شده را فهرست کنید.
unzipسینتکس دستور #
این unzipدستور از سینتکس زیر استفاده میکند.
unzip [OPTIONS]... [ZIP_FILENAME] [MEMBER FILES/DIRS]...کجا،
[OPTIONS]نحوه استخراج محتوا را تغییر دهید. این اختیاری است. مهمترین گزینهها در بخش بعدی پوشش داده شدهاند.[ZIP_FILENAME]فایلی است که.zipمیخواهید بهطور کامل یا بخشی از فایلهای آن را استخراج کنید.[MEMBER FILES/DIRS]فایلها یا دایرکتوریهایی در آرشیو هستند که باید استخراج شوند. در صورت حذف، دستور تمام فایلها را استخراج میکند.
unzipکاربرد فرمان #
- دستور unzip را به همراه نام آرشیو اجرا کنید تا همه فایلها در دایرکتوری کاری استخراج شوند.کنسول
$ unzip archive-name.zip - برای استخراج فقط آن فایل به جای کل آرشیو، نام فایل را بعد از نام آرشیو مشخص کنید.کنسول
$ unzip archive-name.zip file1.txtدستور بالا فقط فایلها را
file1.txtاز آرشیو استخراج کرده و در دایرکتوری کاری قرار میدهد. - از این
-dپرچم برای تعریف مسیر مقصدی که میخواهید فایلها در آن استخراج شوند استفاده کنید. این مورد زمانی مفید است که میخواهید فایلهای استخراج شده را سازماندهی شده نگه دارید.کنسول$ unzip archive-name.zip -d /path/to/destinationدستور بالا تمام فایلها را از آرشیو به
/path/to/destinationدایرکتوری مورد نظر منتقل میکند. -lاز این گزینه برای پیشنمایش تمام فایلهای داخل آرشیو استفاده کنید . این گزینه به شما امکان میدهد قبل از استخراج، محتوای آرشیو را بررسی کنید.کنسول$ unzip -l archive-name.zip- نام چندین فایل را بعد از نام آرشیو لیست کنید تا فقط آن فایلها از آرشیو استخراج شوند.کنسول
$ unzip archive-name.zip file1.txt updatedfile.txtدستور بالا فایلهای
file1.txtو راupdatedfile.txtاز آرشیو استخراج کرده و آنها را در دایرکتوری کاری قرار میدهد. -oاز این پرچم برای بازنویسی فایلهایی که از قبل در مقصد وجود دارند بدون نیاز به اعلان استفاده کنید . بازنویسی خودکار فایلها هنگام اسکریپتنویسی یا خودکارسازی فرآیند استخراج مفید است.کنسول$ unzip -o archive-name.zipدستور فوق تمام فایلها را از فایل موجود استخراج کرده
archive-name.zipو بدون درخواست تأیید، آنها را با فایلهای موجود با نامهای مشابه جایگزین میکند.-nاز این پرچم برای رد کردن فایلهایی که از قبل در مقصد وجود دارند استفاده کنید . رد کردن فایلهای موجود از رونویسی جلوگیری میکند.کنسول$ unzip -n archive-name.zipدستور بالا فایلها را از
archive-name.zipدایرکتوری مقصد استخراج میکند اما از فایلهایی که از قبل در آن دایرکتوری وجود دارند صرف نظر میکند.- برای مشاهده جزئیات خروجی در حین استخراج، از پرچم استفاده کنید
-v. این شامل نام فایلها، اندازهها و مهرهای زمانی برای هر فایل استخراج شده میشود.کنسول$ unzip -v archive-name.zip
یک دایرکتوری را زیپ کنید #
شما میتوانید کل دایرکتوریها را در یک .zipفایل واحد بایگانی کنید تا پشتیبانگیری ساده شود، فایلهای پروژه سازماندهی شوند یا استفاده از فضای ذخیرهسازی کاهش یابد.
zipاز دستور به همراه-rپرچم برای فشردهسازی یک دایرکتوری و شامل کردن تمام فایلها و زیرشاخههای آن استفاده کنید .کنسول$ zip -r archive-name.zip directory-nameدستور بالا یک آرشیو با نام ایجاد میکند که
archive-name.zipشامل همه چیز داخل آنdirectory-name، از جمله پوشههای تو در تو، میشود.-xاز این پرچم برای حذف فایلها، انواع فایلها یا پوشههای خاص در حین فشردهسازی استفاده کنید . این به کاهش حجم بایگانی و جلوگیری از گنجاندن فایلهای غیرضروری کمک میکند.کنسول$ zip -r archive-name.zip directory-name -x "*.log" "*.tmp" "cache/*"
دستور بالا فایل را فشرده میکند
directory-nameاما از همه.logفایلها.tmpو کلcacheپوشه صرف نظر میکند.- برای ترکیب چندین دایرکتوری در یک فایل زیپ، آنها را بعد از نام آرشیو لیست کنید.کنسول
$ zip -r archive-name.zip dir1 dir2 dir3 - از یک نقطه
.برای ارجاع به دایرکتوری کاری و فشردهسازی تمام محتویات آن استفاده کنید.کنسول$ zip -r archive-name.zip .
یک دایرکتوری را از حالت فشرده خارج کنید #
شما میتوانید .zipآرشیوی را که شامل کل سلسله مراتب پوشه، شامل زیرشاخهها و فایلهای تو در تو است، استخراج کنید. استخراج ساختار کامل پوشهها هنگام بازیابی نسخههای پشتیبان، استقرار پروژههای بستهبندی شده یا دسترسی به پوشههای فشرده مشترک بین سیستمها مفید است.
unzipاز دستور به همراه نام آرشیو برای استخراج ساختار کامل دایرکتوری در دایرکتوری کاری خود استفاده کنید .کنسول$ unzip archive-name.zip-dاز این پرچم برای استخراج آرشیو در یک مکان خاص استفاده کنید . این به سازماندهی فایلهای استخراج شده هنگام کار با چندین آرشیو کمک میکند.کنسول$ unzip archive-name.zip -d /path/to/destinationدستور بالا کل ساختار دایرکتوری را در استخراج میکند
/path/to/destination.-oاز این پرچم برای بازنویسی خودکار فایلها و دایرکتوریهای موجود در مکان مورد نظر استفاده کنید .کنسول$ unzip -o archive-name.zip -d /path/to/destination- از این
-nپرچم برای جلوگیری از رونویسی فایلها یا دایرکتوریهای موجود استفاده کنید.کنسول$ unzip -n archive-name.zip -d /path/to/destinationدستور بالا همه چیز را از
archive-name.zipدایرکتوری مقصد استخراج میکند اما فایلها و پوشههای موجود در آن را دستنخورده باقی میگذارد.
نتیجه گیری #
zipشما ابزارهای کمکی و را روی سیستم لینوکس خود نصب کردهاید unzip. این ابزارها به شما امکان میدهند فایلهای تکی را فشرده کنید، کل دایرکتوریها را بایگانی کنید و فایلها یا ساختار کامل پوشهها را از بایگانیها استخراج کنید . برای گزینههای بیشتر و جزئیات استفاده پیشرفته، به مستندات Info-ZIP.zip مراجعه کنید .