بلاگ ابرفردوسی > آموزش سرور محاسبات سنگین : استخراج فایل زیپ در لینوکس با ترمینال؛ آموزش کاربردی unzip

استخراج فایل زیپ در لینوکس با ترمینال؛ آموزش کاربردی unzip

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

استخراج فایل زیپ در لینوکس به معنی خارج کردن فایل‌ها و دایرکتوری‌ها از حالت فشرده (zip) در محیط خط فرمان (CLI) است که به‌طور پیش‌فرض توسط ابزار unzip مدیریت می‌شود. برای استخراج ساده فایل در پوشه فعلی از دستور unzip file.zip و برای هدایت خروجی به یک مسیر مشخص از سوئیچ -d (مانند unzip file.zip -d /path/to/dir) استفاده می‌شود. اما وقتی پای آرشیوهای چند گیگابایتی، فایل‌های رمزدار یا مدیریت فایل روی سرور ازطریق SSH در میان باشد، کمبود فضای دیسک، محدودیت‌های ابزارهای قدیمی یا خطاهای عدم دسترسی می‌توانند کل فرایند را نیمه‌کاره بگذارند.

در مواجهه با فایل‌های چند گیگابایتی نیز، چک کردن فضای آزاد دیسک، تست سلامت آرشیو با سوئیچ t و درصورت نیاز بهره‌گیری از ابزارهای قدرتمندتر مانند 7z برای پشتیبانی از ساختار ZIP64 اهمیت زیادی دارد.

در این مقاله ابر فردوسی، ابتدا نحوه نصب و استفاده از دستور پایه unzip و سوئیچ‌های پرکاربرد آن (مانند مشاهده محتوا، تست سلامت و مدیریت بازنویسی) را مرور می‌کنیم؛ سپس به سراغ سناریوهای عملی استخراج فایل‌های زیپ حجیم، مدیریت آرشیوها روی سرور ازطریق SSH و روش‌های رفع خطای Extract نشدن فایل‌ها در لینوکس خواهیم رفت.

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

قبل‌از شروع فرایند استخراج فایل زیپ در لینوکس، باید مطمئن شوید ابزار استاندارد unzip روی سیستم یا سرور شما نصب و آماده‌به‌کار است. اگرچه بیشتر توزیع‌های دسکتاپی لینوکس به‌صورت پیش‌فرض این ابزار را همراه خود دارند، اما در برخی از ایمیج‌های مینیمال سروری (مانند Ubuntu Server یا AlmaLinux Minimal) ممکن است با زدن این کامند با خطای command not found: unzip مواجه شوید.

برای بررسی وجود دستور unzip در ترمینال، کافی است دستور زیر را اجرا کنید:

unzip -v

یا از ابزار جهت‌یابی مسیر استفاده کنید:

which unzip

اگر ترمینال نسخه ابزار یا مسیری مثل /usr/bin/unzip را خروجی داد، همه‌چیز آماده است. در غیر این صورت، بسته به توزیعی که روی سرور یا سیستم‌عامل خود دارید، می‌توانید با یکی از دستورهای زیر ابزار را در چند ثانیه نصب کنید:

  • اوبونتو و دبیان (Ubuntu / Debian):

برای استخراج فایل ZIP در Ubuntu با دستور، ابتدا لیست پکیج‌ها را آپدیت کنید و سپس ابزار را نصب کنید:

sudo apt update && sudo apt install unzip -y
  • سنت‌او‌اس، آلمالینوکس و راکی لینوکس (CentOS / AlmaLinux / Rocky Linux):

در توزیع‌های مبتنی بر Red Hat از مدیر پکیج dnf (یا yum در نسخه‌های قدیمی‌تر) استفاده کنید:

sudo dnf install unzip -y
  • فدورا (Fedora):
sudo dnf install unzip -y
  • آرچ لینوکس (Arch Linux):
sudo pacman -S unzip
باکس نکته وردپرس – راست‌چین
✨ نکته مهم
اگر در سرورهای ابری با دسترسی غیر Root کار می‌کنید، حتماً پیشوند sudo را ابتدای دستورات نصب قرار دهید. نکته مهم دیگر این است که نسخه unzip موجود در مخازن رسمی سیستم‌عامل‌های به‌روز، از استاندارد ZIP64 (پشتیبانی از فایل‌های بزرگ‌تر از ۴ گیگابایت و بیش از ۶۵,۵۳۵ فایل در یک آرشیو) پشتیبانی می‌کند. به‌همین دلیل، به‌روزرسانی مخازن قبل‌از نصب، شما را از خطاهای عجیب در مواجهه با آرشیوهای حجیم مصون می‌دارد.

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

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

شاید در نگاه اول، دستور unzip در لینوکس فقط برای بازکردن ساده یک فایل فشرده به‌کار برود؛ اما وقتی روزانه با ده‌ها آرشیو مختلف سروکار دارید، دانستن سوئیچ‌های کاربردی این ابزار باعث می‌شود بدون شلوغ کردن دایرکتوری کاری یا بازنویسی ناخواسته فایل‌های مهم، به‌سرعت فرایند استخراج فایل زیپ در لینوکس را مدیریت کنید.

در ادامه پرکاربردترین دستورها و سوئیچ‌های پایه unzip را براساس سناریوهای واقعی در مدیریت فایل بررسی می‌کنیم:

۱. استخراج ساده در دایرکتوری فعلی

دم‌دستی‌ترین حالت، پاس دادن نام فایل به دستور است. در این حالت، تمام محتویات مستقیم در همان پوشه‌ای که ترمینال در آن باز است اکسترکت می‌شوند:

unzip archive.zip

۲. استخراج به یک مسیر مشخص (سوئیچ d)

به‌جای اینکه فایل را در پوشه فعلی باز کنید و بعد با کامند mv آن را جابه‌جا کنید، با سوئیچ -d (مخفف Directory) مسیر مقصد را مشخص کنید. اگر پوشه مقصد وجود نداشته باشد، خود unzip آن را می‌سازد:

unzip archive.zip -d /var/www/html/myproject

۳. مشاهده محتویات بدون استخراج (سوئیچ l)

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

unzip -l archive.zip

۴. تست سلامت و یکپارچگی آرشیو (سوئیچ t)

برای مطمئن شدن از سالم بودن فایل زیپ و عدم بروز خطا هنگام دانلود یا انتقال، از سوئیچ t استفاده کنید. این دستور بدون اکسترکت کردن، کد یکپارچگی (CRC) تمام فایل‌ها را چک می‌کند:

unzip -t archive.zip

۵. کنترل بازنویسی فایل‌ها (سوئیچ‌های o و n)

اگر فایل‌هایی هم‌نام با محتویات زیپ در پوشه مقصد وجود داشته باشند، ترمینال از شما سؤال می‌پرسد. برای اتوماسیون در اسکریپت‌ها یا جلوگیرى از توقف دستور از این دو سوئیچ استفاده کنید:

  • سوئیچ o (Overwrite): بازنویسی اجباری تمام فایل‌های هم‌نام بدون پرسش.
  • سوئیچ n (Never overwrite): عدم بازنویسی فایل‌های موجود و حفظ نسخه‌های قبلی.
# بازنویسی اجباری فایل‌های موجود
unzip -o archive.zip -d /target/path

# صرف‌نظر از بازنویسی فایل‌های موجود
unzip -n archive.zip -d /target/path

۶. حالت بی‌صدا و بدون لاگ (سوئیچ q)

هنگام اکسترکت فایل ZIP در لینوکس روی آرشیوهای حاوی هزاران فایل کوچک، چاپ شدن نام تک‌تک فایل‌ها در ترمینال باعث کندی فرایند I/O می‌شود. با سوئیچ q (Quiet) خروجی متنی ترمینال کاملاً خاموش می‌شود:

unzip -q archive.zip -d /target/path

۷. استخراج فایل‌ها یا الگوهای خاص (Wildcards)

اگر از یک آرشیو بزرگ فقط به یک فایل یا فرمت مشخص (مثلاً تمام فایل‌های PDF) نیاز دارید، لزومی ندارد کل آرشیو را استخراج کنید:

# استخراج یک فایل مشخص
unzip archive.zip document.pdf

# استخراج تمام فایل‌های با پسوند pdf
unzip archive.zip "*.pdf" -d /documents/

خلاصه سوئیچ‌های پرکاربرد unzip

سوئیچعملکرد فنینمونه دستور کاربردی
dتعیین دایرکتوری مقصد برای خروجیunzip file.zip -d /path/to/dir
lنمایش لیست فایل‌های درون آرشیوunzip -l file.zip
tتست سلامت و یکپارچگی (CRC Check)unzip -t file.zip
qحالت بی‌صدا (جلوگیری از چاپ لاگ)unzip -q file.zip
oبازنویسی اجباری فایل‌های هم‌نامunzip -o file.zip
nمحافظت از فایل‌های موجود (عدم Overwrite)unzip -n file.zip
⚠️ هشدار خیلی مهم
همیشه هنگام استخراج فایل‌های خاص براساس الگو (مثل *.pdf) یا فایل‌هایی که در نام آن‌ها فاصله (Space) وجود دارد، عبارت را داخل کوتیشن ” ” قرار دهید. اگر کوتیشن نگذارید، شل لینوکس (Bash) پیش‌از ارسال دستور به unzip سعی می‌کند الگو را باز کند و با این خطا روبرو می‌شوید: caution: filename not matched.

چگونه فایل ZIP حجیم را در لینوکس استخراج کنیم؟

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

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

چک‌لیست پیش‌از استخراج فایل حجیم (Disk و Inode)

بزرگ‌ترین اشتباه این است که بدون چک کردن منابع، دستور استخراج یک فایل ۵۰ گیگابایتی را بزنید. استخراج فایل‌های چند گیگابایتی می‌تواند به دو روش سرور شما را قفل کند:

1. تمام شدن حجم دیسک (Disk Space): حتماً توجه داشته باشید که برای استخراج، به فضایی معادل «حجم فایل فشرده + حجم فایل‌های اکسترکت‌شده» نیاز دارید. برای بررسی فضای خالی دیسک دستور زیر را اجرا کنید:

df -h

2. تمام شدن شناسه فایل‌ها (Inode Exhaustion): اگر فایل زیپ شما حاوی میلیون‌ها فایل متنی یا تصویر کوچک باشد (مثل دیتابیس‌های هوش مصنوعی یا بکاپ سایت‌های بزرگ)، ممکن است حجم دیسک پر نشود، اما تعداد Inodeهای آزاد سیستم‌عامل به صفر برسد! برای بررسی میزان Inode آزاد از این کامند استفاده کنید:

df -i
۳ نکته قبل از استخراج فایل‌های حجیم در لینوکس

رفع محدودیت ۴ گیگابایتی (فرمت ZIP64) و کاهش بار I/O

فرمت اولیه ZIP بر پایه ساختار ۳۲ بیتی طراحی شده بود و نمی‌توانست فایل‌های بزرگ‌تر از ۴ گیگابایت یا آرشیوهای دارای بیش‌از ۶۵,۵۳۵ فایل را پشتیبانی کند. برای حل این مشکل، ساختار ZIP64 معرفی شد. اگرچه نسخه‌های جدید unzip در لینوکس‌های امروزی از ZIP64 پشتیبانی می‌کنند، اما در توزیع‌های قدیمی‌تر ممکن است هنگام اکسترکت آرشیوهای سنگین با خطاهایی نظیر Zip file too big یا CRC error مواجه شوید.

برای کاهش فشار روی سیستم هنگام کار با ابزار پایه unzip در فایل‌های بزرگ، حتماً سوئیچ -q را اضافه کنید تا ترمینال با چاپ نام هزاران فایل، حافظه و I/O دیسک را درگیر نکند:

unzip -q large-backup.zip -d /destination/path

جایگزین‌های قدرتمندتر برای آرشیوهای بسیار بزرگ

اگر ابزار unzip روی فایل‌های سنگین دچار کندی شدید شد یا ارور داد، استفاده از ابزارهای زیر سرعت و پایداری کار را چندین برابر می‌کند:

الف) استفاده از 7-Zip (ابزار 7z)

ابزار 7-Zip بی‌نقص‌ترین گزینه برای مدیریت فایل‌های چند گیگابایتی است. این ابزار به‌طور کامل از ZIP64 پشتیبانی می‌کند و برخلاف unzip ساده، می‌تواند از قابلیت پردازش چندنخی (Multi-threading) برای افزایش سرعت اکسترکت استفاده کند.

  • نصب در اوبونتو و دبیان:
sudo apt install p7zip-full -y
  • نصب در سنت‌او‌اس و آلمالینوکس:
sudo dnf install p7zip p7zip-plugins -y
  • دستور استخراج فایل زیپ با 7z:
7z x large-archive.zip -o/path/to/target

(نکته: بین سوئیچ o و مسیر مقصد نباید فاصله یا Space بگذارید).

ب) استفاده از ابزار jar (دستور اختصاصی جاوا)

اگر روی سرور خود ابزارهای توسعه جاوا (JDK) را نصب دارید اما امکان نصب پکیج جدید ندارید، ابزار خط فرمانی jar یک جایگزین فوق‌العاده پایدار برای باز کردن فایل‌های زیپ بزرگ است:

jar xvf large-archive.zip
💡 ترفند کاربردی
اگر سرور شما دارای چند هسته CPU قدرتمند است، هنگام استخراج آرشیوهای فوق‌العاده حجیم با 7z می‌توانید با اضافه کردن سوئیچ -mmt=on ترمینال را مجبور کنید از تمام هسته‌های پردازنده به‌صورت موازی بهره ببرد. این ترفند زمان استخراج فایل‌های بالای ۱۰۰ گیگابایت را تا ۵۰٪ کاهش می‌دهد.

رفع مشکل Extract نشدن فایل ZIP در لینوکس و خطاهای رایج

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

در فرایند استخراج فایل زیپ در لینوکس، همیشه همه‌چیز طبق برنامه پیش نمی‌رود. مواجهه با خطای عدم دسترسی، فراموشی رمز عبور، خرابی فایل به‌دلیل دانلود ناقص یا حتی روبه‌رو شدن با آرشیوهای چندپارت (Split ZIP)، از چالش‌های روزمره ادمین‌ها و کاربران لینوکس است. در ادامه رایج‌ترین خطاهایی که مانع Extract فایل در لینوکس می‌شوند را به‌همراه راه‌حل‌های عملی آن‌ها عیب‌یابی می‌کنیم:

استخراج فایل‌های ZIP رمزدار

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

  • روش تعاملی (پیشنهادی و امن): دستور را اجرا کنید تا ترمینال به‌صورت مخفی از شما رمز را بپرسد:
unzip encrypted.zip
  • روش مستقیم با سوئیچ P:
unzip -P MySecretPassword encrypted.zip
⚠️ هشدار خیلی مهم
از نوشتن رمز عبور با سوئیچ P در دستورات مستقیم ترمینال سرورهای اشتراکی خودداری کنید! زیرا پسورد شما درون تاریخچه ترمینال (.bash_history) و لیست پردازش‌های زنده سیستم (ps aux) ذخیره می‌شود و سایر کاربران سرور می‌توانند آن را مشاهده کنند.

خطای عدم دسترسی (Permission Denied)

این خطا معمولاً زمانی رخ می‌دهد که شما دسترسی نوشتن (Write Permission) در دایرکتوری مقصد را ندارید یا مالک پوشه کاربر دیگری است: unzip: cannot create extraction directory: Permission denied

  • راه‌حل: یا دستور را با دسترسی روت (sudo) اجرا کنید یا با کامندهای chown و chmod مالکیت و مجوزهای پوشه مقصد را تغییر دهید:
sudo unzip archive.zip -d /var/www/html/

خطاهای CRC Error (فایل خراب یا Zip File Too Big)

اگر فایل زیپ هنگام دانلود ناقص دریافت شده باشد یا هدرهای آن آسیب‌دیده باشد، با ارورهایی مثل Bad CRC یا invalid Zip directory مواجه می‌شوید.

  • تلاش برای بازسازی هدرهای خراب:

ابزار unzip سوئیچی برای بازسازی ساختار آرشیوهای آسیب‌دیده دارد:

zip -FF corrupted.zip --out repaired.zip
  • اگر مشکل از حجم بالا یا عدم پشتیبانی unzip باشد:

در فایل‌های بسیار بزرگ، ابزار 7z مقاومت بیشتری در برابر ساختارهای خراب نشان می‌دهد:

7z x corrupted.zip

نحوه بازکردن فایل‌های ZIP چندپارت (Split / Multi-volume)

گاهی اوقات فایل‌های بزرگ به چند بخش تقسیم شده‌اند (مانند archive.z01, archive.z02, archive.zip یا archive.zip.001). ابزار سنتی unzip در لینوکس نمی‌تواند این فایل‌ها را مستقیماً اکسترکت کند.

روش اول- ادغام پارت‌ها با دستور zip و سپس استخراج:

# ادغام پارت‌ها در یک فایل یکپارچه
zip -s 0 split-archive.zip --out single-archive.zip

# استخراج فایل نهایی
unzip single-archive.zip

روش دوم- استخراج مستقیم با 7-Zip:

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

7z x split-archive.zip
💡 ترفند کاربردی
اگر هنگام استخراج فایل‌های زیپی که در ویندوز ساخته شده‌اند با بهم‌ریختگی نام فایل‌های فارسی (کاراکترهای عجیب‌وغریب) مواجه شدید، از سوئیچ O برای تعیین انکودینگ UTF-8 یا CP1256 استفاده کنید:
unzip -O CP1256 persian-files.zip

راهنمای عیب‌یابی خطاهای رایج استخراج ZIP در لینوکس

پیام خطا در ترمینالدلیل اصلی بروز خطاسریع‌ترین راهکار رفع مشکل
No space left on deviceپُرشدن حجم دیسک یا پایان Inodeحذف فایل‌های موقت یا چک با df -h و df -i
Need password / header mismatchفایل رمزدار است یا پسورد اشتباه وارد شدهاستفاده از سوئیچ -P یا واردکردن رمز صحیح
End-of-central-directory signature not foundفایل زیپ به‌طور کامل دانلود نشده یا خراب استدانلود مجدد فایل یا بازسازی هدر با unzip -FF
Permission deniedعدم داشتن مجوز Write در پوشه مقصدافزودن sudo ابتدای دستور یا اصلاح مجوزهای پوشه

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

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

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

برای اینکه اکسترکت کردن فایل‌های زیپ حجیم در ترمینال لینوکس را بدون افت پرفورمنس هندل کنید، رعایت این ۴ تکنیک پیشرفته ضروری است:

۱. بررسی محتویات پیش‌از استخراج کامل

پیش از اکسترکت کردن یک فایل ۵۰ گیگابایتی، با سوئیچ l در unzip یا سوئیچ l در 7z فهرست فایل‌ها را بررسی کنید. این کار به شما نشان می‌دهد که آیا فایل‌ها داخل یک پوشه اصلی (Root Directory) بسته‌بندی شده‌اند یا قرار است ده‌ها هزار فایل به‌صورت پراکنده در پوشه فعلی شما پخش شوند:

7z l large-dataset.zip

۲. استخراج انتخابی (Selective Extraction) برای صرفه‌جویی در زمان و دیسک

اگر از یک بکاپ ۱۰۰ گیگابایتی فقط به یک دایرکتوری یا پوشه خاص (مثلاً پوشه uploads) نیاز دارید، کل آرشیو را اکسترکت نکنید. این کار از فشار بی‌دلیل روی Disk I/O جلوگیری می‌کند:

unzip large-backup.zip "html/wp-content/uploads/*" -d /restored-data/

۳. پایداری نشست هنگام باز کردن فایل زیپ در سرور لینوکس بدون رابط گرافیکی

بزرگ‌ترین کابوس هنگام اکسترکت فایل‌های بسیار حجیم روی سرورهای ریموت، قطعی ناگهانی ارتباط SSH است. اگر اتصال شما قطع شود، سیستم‌عامل پروسه استخراج را Kill می‌کند. برای جلوگیری از این اتفاق، حتماً دستور را داخل یک Session مستمر مانند screen یا tmux اجرا کنید:

# ساخت یک نشست جدید
tmux new -s unzip_session

# اجرای دستور استخراج در حالت بی‌صدا
7z x large-file.zip -o/data/

حالا می‌توانید با خیال راحت ترمینال را ببندید؛ پردازش در پس‌زمینه ادامه می‌یابد!

۴. مدیریت گلوگاه‌های سخت‌افزاری و پردازش‌های فوق‌سنگین

عملیات فشرده‌سازی و استخراج داده‌ها در حجم‌های بالایی مانند Terabyte-Scale، فشار عجیبی روی سه بخش اصلی وارد می‌کند: سرعت خواندن/نوشتن دیسک (Disk I/O)، تعداد هسته‌های پردازنده (CPU Cores) و پهنای باند حافظه (RAM).

اگر سیستم یا سرور مجازی شما منابع محدودی داشته باشد، اکسترکت کردن فایل‌های چندده گیگابایتی نه‌تنها ساعت‌ها طول می‌کشد، بلکه سایر سرویس‌های حیاتی سرور را هم نیمه‌فلج می‌کند. در چنین سناریوهایی، فشرده‌سازی و اکسترکت تازه گام صفرِ پروژه شما است! پس‌از آن باید کارهای سنگین‌تری مثل پردازش داده‌ها، آنالیزهای هوش مصنوعی یا کوئری‌گیری‌های پیچیده را انجام دهید.

در این نقاط دردناکِ زیرساختی، انتقال پردازش‌ها به زیرساخت‌هایی مثل سرور محاسبات سنگین (HPC) منطقی‌ترین اقدام ممکن است.

فرصت شروع رایگان HPC ابر فردوسی:

در مجموعه ابر فردوسی، شما می‌توانید قدرتمندترین سرورهای محاسباتی (HPC) را بدون درگیری با هزینه‌های سنگین خرید سخت‌افزار، به‌صورت پرداخت ساعتی اجاره کنید؛ یعنی سرور را فقط برای ساعت‌هایی که پردازش و استخراج داده‌های سنگین طول می‌کشد روشن نگه دارید و سپس آن را خاموش کنید. برای ارزیابی پایداری و سرعت دیسک‌ها، ۱۰۰ هزار تومان اعتبار رایگان نیز به‌محض ثبت‌نام در پنل شما شارژ می‌شود تا زیرساخت را بدون هیچ ریسک مالی تست کنید.

محاسبات سنگین

جمع‌بندی

مدیریت و استخراج فایل زیپ در لینوکس شاید در اولین نگاه یک دستور یک‌خطی به نظر برسد، اما رعایت جزئیاتی مثل سنجش فضای دیسک و Inode، انتخاب ابزار مناسب (unzip برای فایل‌های معمولی و 7z برای فایل‌های بالای ۴ گیگابایت یا چندپارت) و خاموش کردن لاگ‌های متنی ترمینال با سوئیچ بی‌صدا (q)، مرز میان مدیریت فایل حرفه‌ای و یک کرش ناگهانی روی سرور است.

همیشه یادمان باشد که خط فرمان لینوکس ابزارهای متعددی دارد؛ اگر unzip در مواجهه با یک فایل عظیم از دور خارج شد، ابزارهایی مثل 7z یا jar بدون معطلی کار را برای شما تمام خواهند کرد.

حالا شما برای ما بنویسید که بزرگ‌ترین فایل زیپی که تابه‌حال در عمر کاری‌تان در ترمینال لینوکس استخراج کرده‌اید چند گیگابایت بوده و با چه خطای غیرمنتظره‌ای مواجه شدید؟ اگر در اجرای دستورات بالا روی توزیع خاصی سؤال یا چالشی دارید، در بخش نظرات بپرسید تا با هم عیب‌یابی کنیم.

منابع:
Manpages | linux.die. | linuxize | cyberciti | baeldung | contabo | itsfoss

سؤالات متداول

چگونه فایل ZIP را در لینوکس با ترمینال استخراج کنیم؟

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

دستور unzip در لینوکس چیست و چگونه استفاده می‌شود؟

ابزار unzip یک ابزار خط فرمانی استاندارد در لینوکس برای باز کردن و مدیریت فایل‌های فشرده zip است. استفاده پایه از آن بسیار ساده است؛ مانند unzip archive.zip. سوئیچ‌های جانبی آن نیز امکاناتی مانند تست سلامت فایل (t-)، مشاهده فهرست بدون استخراج (l-) و تعیین مسیر مقصد (d-) را فراهم می‌کنند.

چگونه فایل ZIP را در یک پوشه مشخص استخراج کنیم؟

برای هدایت فایل‌های خروجی به یک مسیر دلخواه، از سوئیچ d استفاده کنید:
unzip archive.zip -d /path/to/destination
اگر پوشه مقصد وجود نداشته باشد، لینوکس به‌صورت خودکار آن را خواهد ساخت.

اگر دستور unzip در لینوکس نصب نباشد چه کنیم؟

درصورت مواجهه با خطای command not found می‌توانید آن را با توجه به توزیع سیستم‌عامل خود نصب کنید:
در اوبونتو و دبیان: sudo apt install unzip
در سنت‌او‌اس، آلمالینوکس و راکی: sudo dnf install unzip

چگونه فایل ZIP رمزدار را در لینوکس باز کنیم؟

اگر دستور unzip filename.zip را بزنید، ترمینال به‌صورت خودکار و امن از شما پسورد می‌خواهد. همچنین می‌توانید پسورد را مستقیماً با سوئیچ P وارد کنید:
unzip -P secret_password filename.zip
(توصیه امنیتی: برای جلوگیری از ثبت رمز در تاریخچه ترمینال از روش اول استفاده کنید).

چگونه فایل ZIP حجیم را در لینوکس استخراج کنیم؟

برای فایل‌های چندگیگابایتی، ابتدا فضای دیسک (df -h) و Inode آزاد (df -i) را چک کنید. سپس با سوئیچ q (حالت بی‌صدا) دستور را اجرا کنید تا فشار روی I/O ترمینال کم شود. اگر فایل بزرگ‌تر از ۴ گیگابایت یا چندپارت است، ابزار 7z (دستور 7z x filename.zip) انتخاب بهتری است.

چگونه فایل ZIP را روی سرور لینوکسی بدون رابط گرافیکی باز کنیم؟

کافی است ازطریق SSH به سرور متصل شوید و به پوشه مربوطه بروید و کامند unzip archive.zip را بزنید. اگر حجم فایل زیاد است، حتماً دستور را داخل یک Session مانند tmux یا screen اجرا کنید تا با قطعی احتمالی SSH، پروسه استخراج قطع نشود.

چرا فایل ZIP در لینوکس extract نمی‌شود؟

این مشکل معمولاً ۴ دلیل اصلی دارد:
کمبود فضای دیسک: برطرف کردن با آزادسازی فضا
عدم داشتن دسترسی (Permission Denied): اجرای دستور با sudo
خرابی یا دانلود ناقص فایل: تلاش برای بازسازی هدر با zip -FF corrupted.zip –out repaired.zip
چندپارت بودن فایل زیپ: استفاده از ابزار 7z به‌جای unzip ساده

یاسین اسدی

اگه می‌خوای زندگیت تغیر کنه کتاب نخون؛ نوشته‌های منو بخون!
پست های مرتبط

ساخت سرور ماینکرفت (Minecraft Server) با اینترنت ملی

برای هر عاشق جهانِ پیکسلی ماینکرفتی، این وضعیت پیش آمده که به‌محض ورود ۳ تا ۴ پلیر به بازی در یک مپ جذاب و لود هم‌زمان چند چانک (Chunk) سنگین، بازی شروع به لگ زدن کرده یا…

ورک‌استیشن مهندسی (Workstation) چیست؟

ورک‌استیشن مهندسی (Engineering Workstation) به سیستمی گفته می‌شود که به‌طور اختصاصی برای پردازش‌های سنگین و محاسبات پیچیده مهندسی طراحی شده است. برخلاف کامپیوترهای خانگی معمولی، این سیستم‌ها با برخورداری از سخت‌افزارهای تخصصی مانند کارت گرافیک‌های دارای گواهی…

آموزش افزایش سرعت پایتون تا ۱۰ برابر؛ راهنمای جامع بهینه‌سازی python

برای دستیابی به پردازش‌های سریع و افزایش سرعت پایتون، نمی‌توان صرفاً به مفسر استاندارد و کدهای اولیه اکتفا کرد. پایتون به دلیل ماهیت مفسری و محدودیت‌های قفل مفسر سراسری (GIL)، در پردازش‌های سنگین محاسباتی ذاتاً کندتر از…

0 0 رای ها
به مقاله امتیاز بدید
0 نظرات