مقدمه ای مختصر  در مورد فشرده سازی فایل :

همانطور که می دانید فشرده سازی فایل یکی از کارهای معمول است که بیشتر ادمین ها و کاربران معمولی آن را انجام میدهند.   معمولا افراد، فشرده سازی فایل را به منظور ذخیره سازی فضای دیسک  و انتقال داده های خود از یک مکان به مکان امن تر مورد استفاده قرار می دهند. خود عبارت tar از دو کلمۀ Tape Archive به معنای “بایگانی نواری” گرفته شده است. منظور از نوار همان نوارهای مغناطیسی است که قبلاً روی آن اطلاعات رایانه‌ای را ذخیره می‌کردند.برای انتقال داده های موجود در رایانه از طریق اینترنت، فشرده سازی  نقش بسیار مهمی بازی می کند و می تواند فایل های متعددی را در کنار یکدیگر نگه دارد. اینکار باعث کاهش اندازه کلی فایل می شود و می تواند در زمان و پهنای باند مصرفی صرفه جویی کند.  سیستم عامل لینوکس نیز دارای ابزارهای موثر و سریعی است که به فایل ها اجازه می دهد ۴۰ تا ۸۰ درصد از اندازه خود را کم کنند. در این مقاله قصد داریم  به همین موضوع بپردازیم. پس همراه باشید.

سناریو:

اگرچه بیشتر ابزارهای فشرده سازی می توانند در سیستم عامل لینوکس به خوبی کار کنند اما در این مقاله از لینوکس مینت ۱۷ استفاده می کنیم. برخی از ابزارها command line و برخی نیز دارای رابط گرافیکی هستند. اجازه دهید هر کدام از ابزارها را با هم بررسی کنیم.

  • فشرده سازی فایل با دستور Tar:
  • همانطور که قبلا نیز گفتیم،عبارت tar از دو کلمۀ Tape Archive به معنای “بایگانی نواری” گرفته شده است. این دستور یکی از رایج ترین ابزار ها برای فشرده سازی و عدم فشرده سازی برای مدیران لینوکسی است.  از این دستور می توان برای آرشیو کردن فرمت های مختلف فایل همچون Gzip، bzip2 یا lzip استفاده کرد. برای نصب tar در سیستم عامل دبیان/ اوبونتو از دستور زیر استفاده کنید:

    # apt-get install tar

    برای نصب tar بر روی سنت اواس(centos) می توانید از دستور زیر استفاده نمایید:

    # yum install tar

    نمونه:

    خوب اجازه دهید یک فایل با اندازه ۵۱۲ مگابایت ایجاد کنیم. برای اینکار باید از دستور زیر استفاده کنید:

    # fallocate -l 512M um.img

    حالا یک آرشیو ایجاد نمایید:

    # tar -cvfz um.tar.gz um.img

    در دستور بالا، -c برای ایجاد آرشیو، -f برای آرشیو کردن فایل، -z  برای فشرده سازی با فرمت Gzip و –v برای verbose به کار می رود.

  • فشرده سازی فایل با gzip:
  • ابزار Gzip یکی از محبوب ترین ابزارها برای فشرده سازی فایل در لینوکس است. این ابزار نام اصلی فایل را حفظ می کند. معمولا این ابزار به صورت درون ساخت در سیستم عامل وجود دارد اما نصب آن به سادگی امکان پذیر است.

    برای نصب این ابزار در اوبونتو از دستور زیر استفاده کنید:

    # apt-get install gzip

    در سنت اواس(CentOS) از دستور زیر استفاده کنید:

    # yum install gzip

    نمونه:

    # gzip examplefile

    برای اینکه جزییات فایل فشرده  شده را دریافت کنید از دستورات زیر استفاده کنید:

    # gzip -l examplefile.gz

     compressed uncompressed ratio uncompressed_name

     ۲۰۳۵۵۹ ۲۰۹۷۱۵۲۰۰ ۹۹٫۹% examplefile

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

    #gzip -d examplefile.gz

    برای فشرده سازی  همه فایل ها و دایرکتوری ها به صورت بازگشتی از دستور زیر استفاده کنید:

    # gzip -r examplefile

    ۳٫فشرده سازی فایل با Lzma:

    Lzma یک ابزار فشرده سازی همچون gzip یا tar است اما کار فشرده سازی را سریع تر انجام می دهد و به صورت درون ساخت در سیستم عامل لینوکس وجود دارد. برای ایجاد آرشیو از دستورات زیر استفاده کنید:

     # lzma -c –stdout examplefile> examplefile.lzma

    برای اکسترکت کردن داده ها از دستور زیر استفاده کنید:

    # lzma -d –stdout examplefile.lzma >examplefile

    اگر چه Lzma یک ابزار قدرتمند محسوب می شود اما در میان کاربران لینوکس زیاد رایج و محبوب نیست.

    ۴٫فشرده سازی فایل با Xz:

    ابزار Xz جانشین lzma است و می تواند فایل های واحد را فشرده سازی کند اما قادر به فشرده کردن فایل های متعدد با یک دستور واحد نیست.این ابزار در سال ۲۰۰۹ معرفی شد . به همین خاطر این امکان وجود دارد که این ابزار در نسخه های قدیمی تر لینوکس پشتیبانی نشود.

    نمونه:

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

    # xz examplefile

    برای درآوردن فایل از حالت فشرده،دستور زیر را به کار ببرید:

    # xz -d examplefile.xz

    ۵.فشرده سازی فایل با bzip2:

    ابزار Bzip2 سریع تر از gzip عمل می کند. این ابزار  فایل ها و فولدرها را به خوبی فشرده می کند. برای انجام فشرده سازی فایل به رم بیشتری نیاز خواهد بود. به همین خاطر برای کاهش مصرف مموری بهتر است از –s استفاده شود.

    نمونه:

    # bzip2 examplefile

    # bzip2 -s examplefile

    برای درآوردن فایل از حالت فشرده از دستور زیر استفاده کنید:

    # bzip2 -d examplefile.bz2

    از این دستور نیز می توانید استفاده کنید:

    # bunzip2 examplefile.bz2

    از گزینه –v برای Verbose استفاده کنید:

    # bzip2 -v examplefile

     examplefile: 1184831.638:1, 0.000 bits/byte, 100.00% saved, 209715200 in, 177 out.

    ۶٫فشرده سازی فایل با Pax:

    ابزار pax یکی ابزارهایی است که کمتر در میان افراد شناخته شده است. این ابزار کارایی سریع تری دارد و بیشتر از یک فشرده ساز به کار می رود.  از این ابزار می توان برای آرشیو، کپی کردن فایل ها به صورت ریموت استفاده کرد. این ابزار به صورت پیش فرض در اوبونتو/ لینوکس مینت نصب نشده است.

    برای نصب بسته از دستور زیر استفاده کنید:

    # apt-get install pax

    نمونه:

    # pax -wf examplefile.tar examplefile

    گزینه w برای نوشتن آرشیو و F برای فایل به کار می رود. برای فشرده سازی فایل در حالت Bzip  یا gzip از گزینه –z استفاده کنید:

    # pax -wf examplefile.tar.gz examplefile

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

    # pax -f examplefile.tar

    اکسترکت کردن محتوای آرشیو:

    # pax -r examplefile.shar

    در اوردن فایل از حالت فشرده:

    # unshar examplefile.shar

    ۱۰٫فشرده سازی فایل با Cpio:

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

    نمونه:

    # cd /tmp

    ls | cpio -ov >/home/username/backup.cpio

    در اوردن فایل از حالت فشرده:

    # cpio -idv