فشرده سازی راه حلی برای کاهش فضای اشغال شده روی دیسک است و همچینین به انتقال داده ها در شبکه به علت کم کردن حجم دادهها کمک میکند. ابزارهای مختلفی برای فشرده سازی فایلها و دایرکتوریها وجود دارد که تعدادی از این ابزارها عبارتنداز :
این ابزار محبوب ترین الگوریتم فشردهسازی در لینوکس است ، فشردهسازی با این ابزار تمام پارامترهای فایل مانند Timestamps و ... را حفظ میکند.
پسوند فایلهای فشرده شده با این ابزار gz میباشد :
filename.gz
برای فشرده کردن یک فایل کافیست از دستور زیر استفاده نمایید :
$ gzip file1
برای استخراج فایلهای فشرده شده از دستور زیر استفاده نمایید :
$ guzip file.gz
یا
$ gzip -d file.gz
دو دستور بالا کاملا مشابه هم هستند.
توجه داشته باشید که gzip تغییرات را بر فایل اصلی اعمال میکند یعنی پس از فشرده سازی خبری از فایل اصلی نیست! برای نگه داشتن فایل اصلی از آپشن k- استفاده میکنیم :
$ gzip -k file
میزان فشرده سازی ( Compression Rate ) در gzip به صورت پیشفرض بر روی عدد ۶ میباشد این عدد میتواند بین ۱ تا ۹ باشد ، هر چه Compression Rate بیشتر باشد فایل بیشتر فشرده میشود.
برای تغییر میزان فشرده سازی به صورت زیر عمل میکنیم :
$ gzip -5 file
در مثال بالا میزان فشرده سازی بر روی عدد ۵ تنظیم شد.
برای مشاهده حجم فایل قبل و بعد از فشرده سازی میتوان از آپشن l- استفاده کرد
$ gzip -l file.gz
برای فشرده سازی یک دایرکتوری از اپشن r- استفاده میکنیم :
$ gzip -r ~/Pictures/
اگر با ابزارهای فشرده سازی آشنا نباشیم در دستور بالا انتظار داریم برای مثال فایلی با نام Pictures.gz تولید شود که تمامی تصاویر در آن فایل موجود باشند اما دستور gzip یک ابزار برای فشرده سازی است نه یک ابزار برای آرشیو کردن ، در دستور فوق تمام تصاویر داخل دایرکتوری دانه به دانه به فایلهایی با پسوند gz تبدیل میشوند و چون از آپشن k- استفاده نکردیم اصل فایل نیز حذف میگردد.
ابزارهای bzip2 و xz
دو ابزار فوق آپشنهایی مشابه gzip دارند با این تفاوت که نوع الگوریتم فشرده سازی این ابزارها باهم متفاوتاند bzip2 بیشترین توان فشرده سازی را دارد اما زمان فشردهکردن فایلها در این ابزار طولانی تر میباشد
برای درک بهتر تفاوتهای این ۳ ابزار تصویر زیر کمک کننده است :
همانطور که مشخص است بهترین ابزار از لحاظ میزان فشرده سازی xz و اما سریع ترین ابزار gzip میباشد این بین bzip2 فشرده سازی نزدیک به xz و زمانی نزدیک به gzip دارد که درواقع هردو ویژگی خوب یعنی میزان زمان مورد نیاز برای فشرده سازی و میزان فشرده سازی مناسبی دارد.