در لینوکس و یونیکس دستورات مختلفی برای فشردهسازی فایلها و خارج کردن آنها از حالت فشرده وجود دارد. برای فشردهسازی فایلها میتوانید از دستورات gzip، bzip2 و zip استفاده کرده و برای خارج کردن فایلها از حالت فشرده نیز دستورات (gzip -d ، bunzip2(bzip2 -d و unzip مورد استفاده قرار میگیرند. در ادامه این مقاله بهطور مفصل به شرح این دستورات، موارد استفاده از آنها و مثالهایی برای درک بهتر این نوع از دستورات لینوکس میپردازیم.

دستورات فشردهسازی (Compressing files)
- دستور Gzip :
این دستور اندازه فایلهای داده شده را با استفاده از کدگذاری LZ77) Lempel-Ziv) فشرده میکند و هر فایل با پسوند gz. جایگزین میشود. برای استفاده از این دستور باید بهصورت زیر عمل کنید:
1 | gzip {filename} |
بهعنوان مثال، این دستور بهصورت زیر نوشته میشود:
1 2 3 | gzip mydata.doc gzip *.jpg ls -l |
bzip2 فایلها را با استفاده از الگوریتم فشردهسازی متن Burrows-Wheeler و کدگذاری هافمن فشرده میکند. بهطور کلی این دستور، فشردهسازی قابل توجه و بهتری را نسبت به دستور bzip انجام میدهد و فشردهسازی آن مبتنی بر LZ77/LZ78 است. علاوه بر این هر فایل با پسوند bz2. جایگزین میشود.
این دستور بهصورت زیر نوشته میشود:
1 | bzip2 {filename} |
بهطور مثال:
1 2 3 | bzip2 mydata.doc bzip2 *.jpg ls -l |
- دستور zip:
zip یک دستور برای فشردهسازی و بستهبندی فایلها در یونیکس/لینوکس است. هر فایل در یک فایل جداگانه { zip {.zip-filename. با پسوند zip. ذخیره میشود.
1 | zip {.zip-filename} {filename-to-compress} |
بهعنوان مثال در دستور زیر mydata.zip نام فایلی است که فایل فشردهشده در آن قرار میگیرد و mydata.doc نام فایلی است که باید فشرده شود.
1 2 3 | zip mydata.zip mydata.doc zip data.zip *.doc ls -l |
- دستور tar:
دستور GNU tar، دستور بایگانی است؛ اما میتوانید از آن برای فشردهسازی فایلهای بزرگ در سرور لینوکس نیز استفاده کنید. GNU tar از فشردهسازی بایگانی gzip و bzip2 پشتیبانی میکند. اگر بیشتر از ۲ فایل دارید، بهتر است به جای gzip یا bzip2 از tar استفاده کنید.
-z: از دستور فشردهسازی gzip استفاده کرده و پسوند فایل فشردهشده tgz. است.
-j: از دستور فشردهسازی bzip2 استفاده کرده و پسوند فایل فشردهشده tbz2. است.
1 2 | tar -zcvf {.tgz-file} {files} tar -jcvf {.tbz2-file} {files} |
مثال:
1 2 3 4 | tar -zcvf data.tgz *.doc tar -zcvf pics.tar.gz *.jpg *.png tar -jcvf data.tbz2 *.doc ls -l |
دستورات خارج کردن فایلها از حالت فشرده شده (Decompressing files)
- دستور gzip -d:
فایلی که با استفاده از دستور gzip ایجاد شده است را میتوانید بهراحتی از حالت فشرده خارج کنید. فایل با استفاده از دستور gzip -d به شکل اصلی خود بازیابی میشود. شما میتوانید از دستور gunzip نیز برای انجام این کار استفاده کنید.
1 2 | gzip -d {.gz file} gunzip {.gz file} |
مثال:
1 2 | gzip -d mydata.doc.gz gunzip mydata.doc.gz |
- دستور bzip2 -d:
شما میتوانید به کمک دستور bzip2 -d یا bunzip2 فایلی که با استفاده از دستور bzip2 ایجاد کردهاید را از حالت فشرده خارج کنید. طرز صحیح نوشتن این دستور بهصورت زیر است:
1 2 | bzip2 -d {.bz2-file} bunzip2 {.bz2-file} |
مثال:
1 2 | bzip2 -d mydata.doc.bz2 gunzip mydata.doc.bz2 |
- دستور unzip:
فایلهای فشردهشده در یک آرشیو ZIP را با استفاده از دستور unzip، استخراج کنید.
1 | unzip {.zip file} |
مثال:
1 2 | unzip file.zip unzip data.zip resume.doc |
- دستور tar:
فایلهایی که با استفاده از دستور فشردهسازی tar از طریق فیلتر gzip و bzip2 ایجاد شدهاند را به کمک ساختار زیر از حالت فشرده خارج کنید.
1 2 | tar -zxvf {.tgz-file} tar -jxvf {.tbz2-file} |
مثال:
1 2 3 | tar -zxvf data.tgz tar -zxvf pics.tar.gz *.jpg tar -jxvf data.tbz2 |
فهرست کردن محتویات یک آرشیو یا فایل فشرده شده
گاهی اوقات شما قصد دارید به فایلهای داخل یک آرشیو یا فایلهای فشرده شده نگاهی بیندازید. برای انجام این کار میتوانید از دستورات زیر استفاده کنید. تمام دستورات بالا گزینه لیستکردن فایلها را پشتیبانی میکنند.
۱) gzip -l {.gz file}
فایلها را از بایگانی GZIP فهرست میکند.
مثال:
1 | gzip -l mydata.doc.gz |
۲) unzip -l {.zip file}
فایلها را از یک آرشیو ZIP فهرست میکند.
مثال:
1 | unzip -l mydata.zip |
۳) tar -ztvf {.tar.gz}
tar -jtvf {.tbz2}
فایلها را از بایگانی TAR فهرست میکند.
مثال:
1 2 | tar -ztvf pics.tar.gz tar -jtvf data.tbz2 |
کلام آخر
در این مقاله دستوراتی که برای فشرده کردن فایلها، خارجکردن فایلها از حالت فشرده و همچنین فهرستکردن آنها مورد استفاده قرار میگرفت را بیان کردیم. اکثر این دستورات هم در لینوکس و هم در یونیکس کاربرد دارند و شما را سریعتر به خواستههایتان میرسانند.
در لینوکس برای انجام کارهای مختلف انواع فرمانها و دستورات وجود دارد که برای کارکردن با سیستم عامل لینوکس دانستن آنها کمک شایانی به شما میکند. به همین منظور شما به یک منبع معتبر و کارآمد برای مطالعه دستورات کاربردی در لینوکس نیاز دارید.
سوالات متداول
دستور فشردهسازی در لینوکس چیست؟
دستور فشردهسازی دادهها با استفاده از کدگذاری تطبیقی Lempel-Zev برای کاهش حجم فایلها انجام میشود. در صورت امکان هر فایل اصلی مشخص شده توسط پارامتر File با یک فایل فشرده جایگزین میشود.
کدام دستور برای فشردهسازی یک فایل در یونیکس استفاده میشود؟
دستور zip برای فشردهسازی فایلها و کاهش حجم آنها مورد استفاده قرار میگیرد. zip در بسیاری از سیستم عاملها مانند یونیکس، لینوکس، ویندوز و غیره موجود است.
چگونه یک فایل فشرده در لینوکس ایجاد کنیم؟
در اینجا به توضیح نحوه ایجاد فایل tar.gz در لینوکس با استفاده از خط فرمان میپردازیم.
- برنامه ترمینال را در لینوکس باز کنید.
- دستور tar را اجرا کنید. با اجرای: tar -czvf file.tar.gz directory یک فایل بایگانیشده با نام file.tar.gz برای فایلی که قصد دارید آن را فشرده کنید، ایجاد میشود.
- با استفاده از دستور ls و دستور tar فایل tar.gz را تأیید کنید.
روشهای فشردهسازی متن در لینوکس چیست؟
Lossless Compression ,Text compression (lossless) , Run-length Encoding، کدگذاری هافمن (Huffman Coding)، کدگذاری شانون فانو (Shannon-FANO Coding)
چگونه فایلهای بزرگ را در لینوکس فشرده کنیم؟
استفاده از دستور gzip بسیار ساده است. فقط کافیست دستور”gzip” را تایپ کنید و سپس نام فایلی را که میخواهید فشرده شود، بعد از آن بنویسید. gzip فایلها را در جای خود رمزگذاری میکند؛ به عبارت دیگر، فایل اصلی با فایل رمزگذاریشده جایگزین میشود.