منتظر تماس شما هستیم /مشاوره
88339415 021
منو

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

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

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

ابزارهای متعددی برای فشرده سازی فایل ها در سیستم های لینوکسی وجود دارد اما همه آن ها عملکرد و بازدهی یکسانی در فشرده سازی ندارند در این پست ما پنج تای آنها را بررسی می کنیم.

تعداد اندکی دستور در لینوکس برای فشرده سازی فایل ها وجود دارد یکی از جدیدترین و موثرترین متدها xz است اما لازم به ذکر است همه متدها دو مزیت ذخیره سازی فضای دیسک و محفوظ نگه داشتن فایل ها برای استفاده های بعدی را دارند. در این پست ما کامند های مختلف فشرده سازی را با هم مقایسه می‌کنیم و تفاوتهای مهم را بیان می‌کنیم.

tarفشرده سازی با دستور

کامند tar ، به طور خاص یک کامند فشرده سازی نیست بلکه عموما برای قراردادن تعدادی از فایلها در قالب یک فایل برای جابجایی راحت به سیستم دیگر و یا برای تهیه نسخه پشتیبان از گروهی از فایل های مرتبط به هم استفاده میشود. همچنین فشرده سازی را نیز به عنوان یک قابلیت دیگر فراهم می کند این کار را با استفاده از  تنظیم z compression  انجام میدهد.

زمانی که با افزودن گزینه z به یک کامند tar میخواهیم فشرده سازی را به آن کامند اضافه میکنیم ، tar از gzip برای فشرده سازی استفاده میکند.

استفاده از tar  برای فشرده سازی گروهی از فایل ها به همان سادگی فشرده سازی یک فایل است،  اگرچه مزیت خاصی نسبت به استفاده از gzip به طور مستقیم ندارد.کامند آن مطابق زیر است :

 

$ tar cfz bigfile.tgz bigfile

Bigfile.tgz فایل جدیدمان هست که با نامی که برای آن مشخص کردیم ذخیره میشود.

Bigfile فایل اصلی هست که میخواهیم آن را فشرده کنیم.

 

سپس با دستور ls –l میتوانیم لیست فایلها را مشاهده کنیم ، که فایل اصلی و فایل فشرده جدید قابل مشاهده میباشد.

مطالب مرتبط:  در حال بروز رسانی

 

$ ls -l bigfile*

-rw-rw-r-- 1 shs shs 103270400 Apr 16 16:09 bigfile-rw-rw-r-- 1 shs shs 21608325 Apr 16 16:08 bigfile.tgz

به کاهش قابل توجه سایز فایل توجه فرمایید.

در صورت تمایل میتوانید از پسوند tar.gz استفاده کنید که فایل فشرده شده را مشخص تر نشان میدهد ، اما اغلب کاربران لینوکس احتمالاً پسوند tgz را به همان معنی می شناسند که در واقع ترکیبی از tar و gz است که یک فایل فشرده شده با استفاده از tar  را مشخص می کند. همانطور که مشاهده نمودید پس از اتمام فشرده سازی ، فایل اصلی و فایل فشرده شده باقی می مانند.

برای جمع آوری تعدادی از فایل ها و فشرده سازی همه آن ها در یک کامند , فرمت اصلی دستور مشابه قبل می باشد اما می بایست فایلهایی را که بعنوان یک گروه میخواهیم بصورت یک جا فشرده  شوند مشخص کنیم ، مانند نمونه زیر :

$ tar cfz bin.tgz bin/*

 

فشرده سازی با دستور Zip

کامند zip یک فایل فشرده شده ایجاد می کند در حالیکه فایل اصلی سالم و بدون تغییر می ماند.دستور آن ساده است تنها نیاز هست مانند کامند tar به خاطر داشته باشید که فایل اصلی باید آخرین آرگومان در خط کامند باشد:

$ zip ./bigfile.zip bigfile

updating: bigfile (deflated 79%)

$ ls -l bigfile bigfile.zip

-rw-rw-r-- 1 shs shs 103270400 Apr 16 11:18 bigfile

-rw-rw-r-- 1 shs shs  21606889 Apr 16 11:19 bigfile.zip

gzip فشرده سازی با دستور

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

مطالب مرتبط:  در حال بروز رسانی

$ gzip bigfile$ ls -l bigfile*

-rw-rw-r-- 1 shs shs  21606751 Apr 15 17:57 bigfile.gz

فشرده سازی با دستور bzip2

این کامند نیز مانند  gzip،فایل را در همان محل فایل اصلی فشرده و جایگزین فایل اصلی می کند.

$ bzip bigfile$ ls -l bigfile*

-rw-rw-r-- 1 shs shs  18115234 Apr 15 17:57 bigfile.bz2

فشرده سازی با دستور xz

در گروه کامندهای فشرده سازی ‏ ، xz جزو  جدیدترین و پیشرفته ترین دستورات است مانند دو کامند قبلی تنها کافیست نام فایل در کامند آورده شود و همینطور فایل جدید فشرده شده جایگزین فایل اصلی می گردد.

$ xz bigfile$ ls -l bigfile*-rw-rw-r-- 1 shs shs 13427236 Apr 15 17:30 bigfile.xz

 

در نظر داشته باشید که xz نسبت به دیگر متدها  ،در فشرده سازی  فایل های بزرگ مدت زمان طولانی تری دارد، اما نتایج تحسین برانگیزی را نیز دارد.

 

مقایسه متدهای فشرده سازی

برخلاف آنچه تصور می شود سایز فایل ها معیار قابل توجه و مهمی است که باید موقع انتخاب متد فشرده سازی در نظر گرفته شود.

آمار های نشان داده شده در زیر ، مربوط به فشرده سازی یک فایل حجیم میباشد که با روش های مختلفی که به آن اشاره کردیم فشرده شده است. این فایل، یک فایل متنی بزرگ و نسبتاً تصادفی می باشد، نوع فشرده سازی تا حد زیادی به محتوای فایل ها بستگی دارد.

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

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

rw-rw-r-- 1 shs shs 103270400 Apr 16 14:01 bigfile

-------------------------------------------------------

rw-rw-r-- 1 shs shs 18115234 Apr 16 13:59 bigfile.bz2    ~17%

-rw-rw-r-- 1 shs shs 21606751 Apr 16 14:00 bigfile.gz     ~21%

-rw-rw-r-- 1 shs shs 21608322 Apr 16 13:59 bigfile.tgz    ~21%

-rw-rw-r-- 1 shs shs 13427236 Apr 16 14:00 bigfile.xz     ~13%

-rw-rw-r-- 1 shs shs 21606889 Apr 16 13:59 bigfile.zip    ~21%

کامند xz با داشتن ۱۳ درصد از اندازه فایل اصلی بهترین عملکرد را داشته است ، البته تمام کامند های دیگر نیز کاهش اندازه قابل توجهی داشته‌اند.

مطالب مرتبط:  در حال بروز رسانی

جایگزینی با فایل اصلی

کامندهای bzip2، gzip  و xz فایل فشرده شده را جایگزین فایل اصلی میکنند اما در کامندهای  tar  و  zip فایل اصلی نیز نگه داشته میشود.

زمان اجرا

کامند xz زمان اجرای طولانی تری نسبت به بقیه متدها دارد که در زیر میتوان مشاده نمود:

 

command   run-time

tar 4.9 seconds

zip5.2 seconds

bzip222.8 seconds

gzip4.8 seconds

xz50.4 seconds

خوشبختانه decompression فایل ها نسبت به فشرده سازی آنها زمان کوتاهتری دارد.

مجوزهای فایل

صرف نظر از مجوزهایی که شما روی فایل اصلی اعمال کرده‌اید مجوزهای فایل فشرده شده بر اساس تنظیمات umask شما میباشند ، به جز برای bzip2 که مجوزهای فایل اصلی را در فایل فشرده شده نیز حفظ می کند.

سازگاری با ویندوز

فایلی که توسط کامند zip ایجاد می شود می تواند به همان راحتی استفاده در لینوکس  و دیگر سیستم های یونیکسی ، روی سیستم های ویندوزی بدون نیاز به ابزار خاصی استفاده شود.

 

Decompression کردن فایل ها

decompression کردن فایل در لینوکس
decompression کردن فایل در لینوکس

کامندهای decompression کردن فایلها نیز مانند همان کامند هایی است که برای فشرده سازی آن ها استفاده کردیم که برای هر کامند مطابق زیر میباشد:

  • tar: tar xf bigfile.tgz
  • zip: unzip bigfile.zip
  • gzip: gunzip bigfile.gz
  • bzip2: bunzip2 bigfile.gz2
  • xz: xz -d bigfile.xzor unxz bigfile.xz
Related Post