Gzip یکی از محبوب‌ترین الگوریتم‌های فشرده‌سازی است که به شما امکان می‌دهد سایز یک فایل را کاهش داده و درعین‌حال، حالت اصلی فایل، مالکیت و برچسب زمان آن را حفظ کند؛ Gzip فرمت فایل‌های با پسوند .gz را نشان می‌دهد. در این راستا از ابزار gzip برای فشرده‌سازی و استخراج فایل‌ها استفاده می‌شود.
در این آموزش نحوه استفاده از دستور gzip را به شما نشان خواهیم داد.

 

ساختار دستوری gzip

ساختار کلی دستور gzip به‌صورت زیر است:

gzip [OPTION]... [FILE]...

Gzip تنها فایل‌ها را به‌صورت تکی فشرده می‌کند و برای هر فایل داده شده، یک فایل فشرده شده ایجاد می‌نماید. طبق قرارداد، نام فایلی که با Gzip فشرده شده است، باید با پسوند .gz یا .z پایان یابد؛ اگر می‌خواهید چندین فایل یا دایرکتوری را در یک فایل فشرده‌سازی کنید، ابتدا باید یک فایل tar ایجاد کرده و سپس فایل .tar را با Gzip فشرده نمایید. در انتها فایلی که با .tar.gz یا .tgz خاتمه می‌یابد، یک فایل Tar است که با Gzip فشرده شده است.
از Gzip اغلب برای فشرده‌سازی فایل‌های متنی، فایل‌های Tar و صفحات وب استفاده می‌شود. از Gzip برای فشرده‌سازی تصاویر، صوت، اسناد PDF و سایر فایل‌های باینری استفاده نکنید؛ زیرا آن‌ها قبلاً فشرده شده‌اند؛ gzip تنها می‌تواند فایل‌های معمولی را فشرده کند و symbolic link ها نادیده گرفته می‌شوند.

فشرده‌سازی فایل‌ها با gzip

برای فشرده‌سازی یک فایل، از دستور gzip به همراه نام فایل استفاده کنید:

gzip filename

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

نگه‌داشتن فایل اصلی

اگر می‌خواهید فایل ورودی (اصلی) را حفظ کنید، از گزینه -k (مخفف عبارت keep) استفاده کنید:

gzip -k filename

گزینه دیگر برای نگه‌داشتن فایل اصلی استفاده از گزینه -c است که به gzip می‌گوید روی خروجی استاندارد بنویسد و خروجی را به یک فایل دیگر وارد نماید:

gzip -c filename > filename.gz


خروجی اضافه

اگر می‌خواهید درصد کاهش و نام‌های فایل‌های در حال پردازش و به طور کلی، توضیحات اضافه‌ای از روند اجرای کار را ببینید، از گزینه - v (مخفف عبارت verbose) استفاده کنید:

gzip -v filename

خروجی دستور بالا مشابه زیر خواهد بود:

 

فشرده‌سازی چندین فایل

شما می‌توانید چندین فایل را نیز به‌عنوان آرگومان به این دستور بدهید. به‌عنوان‌مثال ، برای فشرده‌سازی فایل‌هایی به نام file1، file2، file3، دستور زیر را اجرا می‌کنید:
 

gzip file1 file2 file3

با اجرای دستور بالا، سه فایل فشرده شدهfile1.gz ،file2.gz ،file3.gz  ایجاد می‌شود.

 

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

برای فشرده‌سازی کلیه فایل‌ها در یک دایرکتوری خاص، از گزینه -r استفاده کنید:

gzip -r directory

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

تغییر سطح فشرده‌سازی

gzip به شما امکان می‌دهد محدوده سطوح فشرده‌سازی را به‌صورت بازه از 1 تا 9 مشخص کنید. 1- یا --fast به معنی بالاترین سرعت فشرده‌سازی با نسبت فشرده‌سازی حداقل است و 9- یا --best پایین‌ترین سرعت فشرده‌سازی را با حداکثر نسبت فشرده‌سازی نشان می‌دهد.

سطح فشرده‌سازی پیش‌فرض 6- است؛ به‌عنوان‌مثال، برای به دست آوردن بیشترین فشرده‌سازی، باید دستور زیر را اجرا کنید:

gzip -9 filename

فشرده‌سازی یک فرآیند مرتبط با CPU است؛ بنابراین هر چه سطح فشرده‌سازی بالاتر باشد، اجرای فرآیند زمان بیشتری می‌گیرد و در عوض حجم فایل نهایی کمتر می‌شود.

استفاده از ورودی استاندارد

برای ایجاد یک فایل .gz از روی stdin، خروجی دستور را برای gzip ارسال نمایید. به‌عنوان‌مثال، برای تهیه یک نسخه پشتیبان از پایگاه داده MySQL که به‌صورت Gzip فشرده شده باشد، شما باید دستور زیر را اجرا نمایید:

mysqldump database_name | gzip -c > database_name.sql.gz

برای آشنایی بیشتر با نحوه بک‌آپ گرفتن از MySQL میتوانید این مقاله را مطالعه کنید: درون و برون ریزی پایگاه داده و تنظیم مجدد رمز عبور در Mysql

 

در این آموزش شما با نحوه فشرده سازی فایل‌ها و پوشه‌ها را با دستور gzip در لینوکس و سوئیچ‌های معروف این دستور آشنا شدید؛ شما می‌توانید برای گشودن این فایل‌ها، از این آموزش استفاده کنید: چگونه فایل های gz را باز کنم؟

 

منبع: این