نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: فشرده سازی در لینوکس

  1. #1
    عضو انجمن ourweb آواتار ها
    تاریخ عضویت
    Apr 2012
    محل سکونت
    Ahvaz , IR
    نوشته ها
    798
    تشکر تشکر کرده 
    1,330
    تشکر تشکر شده 
    2,893
    تشکر شده در
    2,003 پست

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

    امروزه حتی با وجود هاردها و دستگاههای ذخیره سازی با حجم زیاد , فشرده سازی همچنان یکی از موارد مهم در همه سیستم عامل ها محسوب می شود , برخی از مزایای فشرده سازی عبارت است از :
    کاهش حجم اشغالی , راحتی در انتقال , راحتی در به اشتراک گذاری , افزایش سرعت انتقال ( تصور کنید که بخواهید 1000 فایل یک مگابایتی در مقایسه با یک فایل 1 گیگابایتی جا به جا کنید).
    معمولترین ابزارهای فشرده سازی در لینوکس gzip , bzip2 و zip می باشد که در بین کاربران عادی zip محبوبیت و کاربرد بیشتری دارد ولی در دنیای لینوکس 2 ابزار دیگر کاربرد و مقبولیت بیشتری دارند.
    خروجی پسوند هر کدام از ابزارهای بالا به شرح زیر می باشد :
    کد PHP:
     bzip2=bz2
    gzip
    =gz
    zip
    =zip 
    شاید در ذهن شما این سوال آمده است که "ما اغلب با پسوندهایی نظیر tar.gz و tar.bz2 روبرو هستیم , پس جایگاه و کاربرد tar چیست؟"
    در پاسخ به این سوال باید گفت که tar ابزار فشرده سازی محسوب نمی شود و هیچ گونه فشرده سازی برای ما انجام نمی دهد بلکه ابزاری جهت تهیه پشتیبان و آرشیو است.tar در واقع یک ابزار کمکی برای gzip و bzip2 در امر فشرده سازی محسوب می شود از آنجائیکه این 2 ابزار قادر به فشرده سازی چندین فایل و دایرکتوری در یک فایل واحد نمی باشند , در واقع این ابزارها برای هر فایل , فایل فشرده شده جداگانه می سازند در صورتیکه tar امکان گرد هم آوردن چندین فایل و دایرکتوری در یک فایل را به آسانی در اختیار ما قرار می دهد.


    نصب ابزارهای مورد نیاز در صورت لزوم :

    معمولا ابزارهای tar و gzip در اکثریت لینوکس ها بطور پیش فرض نصب می باشند.
    نصب در دبین :
    کد PHP:
              apt-get install bzip2 zip unzip 
    نصب در ردهت :
    کد PHP:
              yum install bzip2 zip unzip 
    استفاده از ابزار zip و unzip :

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

    فشرده سازی با استفاده از zip :

    حالت معمول فشرده سازی با zip ; در این مثال "*" نشان دهنده همه فایل های موجود در دایرکتوری جاری می باشد , شما می توانید آدرس فایل و دایرکتوری های مختلف را بجای آن وارد کنید :
    کد PHP:
     webhostingtalk:~# zip webhostingtalk.zip *
    addingali/ (stored 0%)
    addingfile1.txt (stored 0%)
    addingfile2.txt (deflated 50%)
    webhostingtalk:~
    در مثال بالا فایل ها و دایرکتوری های واقع در زیردایرکتوری ها فشرده نمی شوند و اصطلاحا برگشتی(recursively) عمل نمی کند , برای حل این مشکل از گزینه r- همراه با zip استفاده می کنیم :

    کد PHP:
     webhostingtalk:~# zip -r webhostingtalk.zip *
    addingali/ (stored 0%)
      
    addingali/navid/ (stored 0%)
    addingali/navid/reza (stored 0%)
    addingfile1.txt (stored 0%)
    addingfile2.txt (deflated 50%)
    webhostingtalk:~
    برای اینکه فایل های فشرده شده را رمزگذاری کنیم به 2 صورت می توان عمل کرد :
    1-رمز پرسیده خواهد شد

    کد PHP:
     webhostingtalk:~# zip -r webhostingtalk.zip * -e
    Enter password:
    Verify password:
    addingali/ (stored 0%)
    addingali/navid/ (stored 0%)
    addingali/navid/reza (stored 0%)
    addingfile1.txt (stored 0%)
    addingfile2.txt (deflated 50%)
    webhostingtalk:~
    2- رمز مورد نظر را همزمان وارد می کنیم


    کد PHP:
     webhostingtalk:~# zip -r -P www.webhostingtalk.ir webhostingtalk.zip *
    addingali/ (stored 0%)
    addingali/navid/ (stored 0%)
    addingali/navid/reza (stored 0%)
    addingfile1.txt (stored 0%)
    addingfile2.txt (deflated 50%)
    webhostingtalk:~
    خارج کردن از حالت فشرده با استفاده از دستور unzip :

    اگر در زمان باز کزدن فایل zip برخی از فایل ها وحود داشته باشند در مورد جایگزنی آنها از ما سوال خواهد پرسید :

    کد PHP:
    webhostingtalk:~# unzip webhostingtalk.zip
    Archivewebhostingtalk.zip
    [padmins.zipalipassword:
    replace ali/navid/reza? [y]es, [n]o, [A]ll, [N]one, [r]enamey
    extracting
    ali/navid/reza
    replace file1
    .txt? [y]es, [n]o, [A]ll, [N]one, [r]enamen
    replace file2
    .txt? [y]es, [n]o, [A]ll, [N]one, [r]enameA
    inflating
    file2.txt
    webhostingtalk
    :~
    در غیر اینصورت سوالی پرسیده نخواهد شد :
    کد PHP:
     webhostingtalk:~# unzip padwebhostingtalkmins.zip
    Archivewebhostingtalk.zip
    [padmins.zipalipassword:
    creatingali/
    creatingali/navid/
    extractingali/navid/reza
    extracting
    file1.txt
    inflating
    file2.txt
    webhostingtalk
    :~
    باز کردن فایل zip از حالت فشرده در محل دیگری :
    کد PHP:
    webhostingtalk:~# unzip webhostingtalk.zip -d /webhostingtalk/
    Archivewebhostingtalk.zip
    [padmins.zipalipassword:
    creating: /webhostingtalk/ali/
    creating: /webhostingtalk/ali/navid/
    extracting: /webhostingtalk/ali/navid/reza
    extracting
    : /webhostingtalk/file1.txt
    inflating
    : /webhostingtalk/file2.txt
    webhostingtalk
    :~
    خارج کردن یک فایل خاص :
    کد PHP:
     webhostingtalk:~# ls test/
    webhostingtalk:~# unzip webhostingtalk.zip file1.txt -d test/
    Archivewebhostingtalk.zip
    extracting
    test/file1.txt
    webhostingtalk
    :~# ls test/
    file1.txt
    webhostingtalk
    :~
    بدست آوردن اطلاعاتی در مورد فایل ها و دایرکتوری های موجود در فایل zip :

    کد PHP:
    webhostingtalk:~# unzip -v webhostingtalk.zip
    Archive:  webhostingtalk.zip
    Length   Method    Size  Ratio   Date   Time   CRC
    -32    Name
    --------  ------  ------- -----   ----   ----   ------    ----
    0  Stored        0   0%  07-18-08 04:08  00000000  ali/
    0  Stored        0   0%  07-18-08 04:23  00000000  ali/navid/
    0  Stored        0   0%  07-18-08 04:08  00000000  ali/navid/reza
    0  Stored        0   0
    %  07-18-08 03:53  00000000  file1.txt
    12  Defl
    :N        6  50%  07-18-08 03:54  f2b1e508  file2.txt
    --------          -------  ---                            -------
    12                6  50%                            5 files
    webhostingtalk
    :~
    بدست آوردن لیست فایل ها و دایرکتوری های موجود در فایل zip :

    کد PHP:
    webhostingtalk:~# unzip -l webhostingtalk.zip
    Archive:  webhostingtalk.zip
    Length     Date   Time    Name
    --------    ----   ----    ----
    0  07-18-08 04:08   ali/
    0  07-18-08 04:23   ali/navid/
    0  07-18-08 04:08   ali/navid/reza
    0  07
    -18-08 03:53   file1.txt
    12  07
    -18-08 03:54   file2.txt
    --------                   -------
    12                   5 files
    webhostingtalk
    :~
    اطمینان از سالم بودن فایل zip :

    کد PHP:
     webhostingtalk:~# unzip -t padmins.zip
    Archive:  webhostingtalk.zip
    [webhostingtalk.zipalipassword:
    testingali/                     OK
    testing
    ali/navid/               OK
    testing
    ali/navid/reza           OK
    testing
    file1.txt                OK
    testing
    file2.txt                OK
    No errors detected in compressed data of padmins
    .zip.
    webhostingtalk:~
    استفاده از ابزار gzip :

    فشرده سازی یک فایل :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~# gzip file1.txt
    webhostingtalk:~# ls
    file1.txt.gz
    webhostingtalk
    :~
    همانطور که مشاهده می کنید فایل اصلی بواسطه تبدیل شدنش به فایل فشرده از بین می رود , برای اینکه فایل اصلی را بهمراه فایل فشرده داشته باشیم , بدین ترتیب عمل می کنیم :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~# gzip -c file1.txt > file1.txt.gz
    webhostingtalk:~# ls
    file1.txt  file1.txt.gz
    webhostingtalk
    :~
    می توانید همزمان آدرس چند فایل را وارد کنید :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt  file2.txt
    webhostingtalk
    :~# gzip file1.txt file2.txt
    webhostingtalk:~# ls
    file1.txt.gz  file2.txt.gz
    webhostingtalk
    :~
    همانطور که مشاهده می کنید هر فایل بطور جداگانه فشرده شده است.

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

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


    1. ابتدا یک فایل آرشیو با tar ایجاد کنیم و سپس با ابزار gzip آن یک فایل را فشرده کنیم :
      کد PHP:
           tar cvf webhostingtalk.tar file1.txt file2.txt test/
          
      gzip webhostingtalk.tar 
      همانطور که در خط اول قابل مشاهده می باشد می توان همزمان آدرس چندین فایل و داریکتوری را داد.
    2. یک فایل آرشیو ایجاد و همزمان خروجی را برای gzip ارسال کنیم :
      کد PHP:
           tar cvf webhostingtalk.tar file1.txt file2.txt test/ | gzip 
    3. ساده ترین روش با استفاده از دستور tar در یک مرحله :
      کد PHP:
           tar cvfz webhostingtalk.tar.gz file1.txt file2.txt test


    نکته :
    برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
    کد PHP:
              gzip -tv webhostingtalk.tar.gz 
    باز کردن فایل های فشرده gz یا tar.gz :

    فایل های فشرده شده توسط gzip را به 2 طریق می توان از حالت فشرده خارج کرد :

    1-استفاده از دستور gzip -d

    کد PHP:
     webhostingtalk:~# ls
    file1.txt.gz
    webhostingtalk
    :~# gzip -d file1.txt.gz
    webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~
    2-استفاده از ابزار gunzip

    کد PHP:
     webhostingtalk:~# ls
    file1.txt.gz
    webhostingtalk
    :~# gunzip file1.txt.gz
    webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~
    برای اینکه فایل های فشرده توسط tar و gzip را ازحالت فشرده خارج کنیم 3 راه پیش رو داریم :


    1. در دو مرحله , ابتدا فایل را از حالت فشرده خارج کنیم و سپس از حالت آرشیو
      کد PHP:
           gzip -d webhostingtalk.tar.gz
          tar xvf webhostingtalk
      .tar
          
      or
          
      gunzip webhostingtalk.tar.gz
          tar xvf webhostingtalk
      .tar 
    2. هم زمان که با gzip از حالت فشرده خارج می کنیم , خروجی را به tar ارسال می کنیم :
      کد PHP:
           gzip -dc tar xvf webhostingtalk.tar.gz tar -
    3. ساده ترین و بهترین روش در یک مرحله و با دستور tar :
      کد PHP:
           tar xvfz webhostingtalk.tar.gz 





    استفاده از ابزار bzip2 :

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

    فشرده سازی یک فایل :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~# bzip2 file1.txt
    webhostingtalk:~# ls
    file1.txt.bz2
    webhostingtalk
    :~
    همانطور که مشاهده می کنید فایل اصلی بواسطه تبدیل شدنش به فایل فشرده از بین می رود , برای اینکه فایل اصلی را بهمراه فایل فشرده داشته باشیم , بدین ترتیب عمل می کنیم :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~# bzip2 -c file1.txt > file1.txt.bz2
    webhostingtalk:~# ls
    file1.txt  file1.txt.bz2
    webhostingtalk
    :~
    می توانید همزمان آدرس چند فایل را وارد کنید :

    کد PHP:
     webhostingtalk:~# ls
    file1.txt  file2.txt
    webhostingtalk
    :~# bzip2 file1.txt file2.txt
    webhostingtalk:~# ls
    file1.txt.bz2  file2.txt.bz2
    webhostingtalk
    :~
    همانطور که مشاهده می کنید هر فایل بطور جداگانه فشرده شده است.

    استفاده از tar بهمراه bzip2 این امکان را به ما می دهد تا همه فایل ها را در یک فایل فشرده کنیم و همچنین اصل فایل ها دست نخورده باقی ماند.

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


    1. ابتدا یک فایل آرشیو با tar ایجاد کنیم و سپس با ابزار bzip2 آن یک فایل را فشرده کنیم :
      کد PHP:
           tar cvf webhostingtalk.tar file1.txt file2.txt test/
          
      bzip2 webhostingtalk.tar 
      همانطور که در خط اول قابل مشاهده می باشد می تواین همزمان آدرس چندین فایل و داریکتوری را بدهیم.
    2. یک فایل آرشیو ایجاد و همزمان خروجی را برای bzip2 ارسال کنیم :
      کد PHP:
           tar cvf webhostingtalk.tar file1.txt file2.txt test/ | bzip2 
    3. ساده ترین روش با استفاده از دستور tar در یک مرحله :
      کد PHP:
               tar cvfj webhostingtalk.tar.bz2 file1.txt file2.txt test


    نکته :
    برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
    کد PHP:
              bzip2 -tv webhostingtalk.tar.bz2 

    باز کردن فایل های فشرده bz2 یا tar.bz2 :


    فایل های فشرده شده توسط bzip2 را به 2 طریق می توان از حالت فشرده خارج کرد :

    1-استفاده از دستور bzip2 -d

    کد PHP:
     webhostingtalk:~# ls
    file1.txt.gz
    webhostingtalk
    :~# bzip2 -d file1.txt.gz
    webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~
    2-استفاده از ابزار bunzip2

    کد PHP:
     webhostingtalk:~# ls
    file1.txt.gz
    webhostingtalk
    :~# bunzip2 file1.txt.gz
    webhostingtalk:~# ls
    file1.txt
    webhostingtalk
    :~
    برای اینکه فایل های فشرده توسط tar و bzip2 را ازحالت فشرده خارج کنیم 3 راه پیش رو داریم :


    1. در دو مرحله , ابتدا فایل را از حالت فشرده خارج کنیم و سپس از حالت آرشیو
      کد PHP:
               bzip2 -d webhostingtalk.tar.gz
          tar xvf webhostingtalk
      .tar
          
      or
          
      bunzip2 webhostingtalk.tar.gz
          tar xvf webhostingtalk
      .tar 
    2. هم زمان که با bzip2 از حالت فشرده خارج می کنیم , خروجی را به tar ارسال می کنیم :
      کد PHP:
           bzip2 -dc tar xvf webhostingtalk.tar.gz tar -
    3. ساده ترین و بهترین روش در یک مرحله و با دستور tar :
      کد PHP:
               tar xvfj webhostingtalk.tar.gz 

    نکته :
    وقتی که از دستور tar استفاده می کنیم برای آنکه فایل در محلی دیگر از حالت فشرده خارج شود بدین ترتیب می توان عمل کرد :
    کد PHP:
     tar xvfz webhostingtalk.tar.gz -/path/to/extract
    با استفاده از tar و گزینه u- می توان فایل آرشیو را بروز کرد ولی این کار برای فایل های آرشیوی فشرده شده قابل انجام نیست.

    نکته مهم :

    سطوح مختلفی برای فشرده سازی وجود دارد , این سطوح با اعداد 0 الی 9 نشان داده می شوند.هر چه اعداد بزرگتر می شود , فشرده سازی بیشتری صورت می گیرد.در سطح 0 هیچ گونه فشرده سازی صورت نمی گیرد و همانند tar عمل می کند.با بالاتر رفتن سطح فشرده سازی میزان استفاده از منابع سیستم بیشتر شده و همچنین زمان آن هم بالاتر می رود.
    سطح فشرده سازی پیش فرض 6 می باشد که ما می توانیم بر حسب نیاز این سطوح را تغییر دهیم , کافیست در زمان استفاده از دستورات فشرده سازی مثلا برای استفاده از سطح 8 گزینه 8- را اضافه کنید.
    وب سایت : www.irhosting24.com
    تلگرام : OURWEB@ - تلفن تماس : موبایل : 09999978820

  2. تعداد تشکر ها از ourweb به دلیل پست مفید


  3. # ADS




     

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •