امیرحسین نقی نژاد
امیرحسین نقی نژاد
خواندن ۲ دقیقه·۲ سال پیش

فشرده سازی در لینوکس

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

  • gzip
  • bzip2
  • zip
  • xz
  • 7zip

ابراز gzip

این ابزار محبوب ترین الگوریتم فشرده‌سازی در لینوکس است ، فشرده‌سازی با این ابزار تمام پارامترهای فایل مانند 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 دارد که درواقع هردو ویژگی خوب یعنی میزان زمان مورد نیاز برای فشرده سازی و میزان فشرده سازی مناسبی دارد.


فشرده سازیlinuxcompressiongzip
برنامه نویس لاراول
شاید از این پست‌ها خوشتان بیاید