Fadak.IR راهکارهای فدک
English Русский العربية فارسی
مقالات مدیریت مطالعات زبان


/ فاوا / آموزش رایانه

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


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


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

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

استفاده از ابزار zip و unzip :

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

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

حالت معمول فشرده سازی با zip ; در این مثال "*" نشان دهنده همه فایل‎های موجود در دایرکتوری جاری می‌باشد , شما می‌توانید آدرس فایل و دایرکتوری‎های مختلف را بجای آن وارد کنید :
PersianAdmins:~# zip padmins.zip *
adding: ali/ (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~# 
در مثال بالا فایل‎ها و دایرکتوری‎های واقع در زیردایرکتوری‎ها فشرده نمی‎شوند و اصطلاحا برگشتی(recursively) عمل نمی‎کند , برای حل این مشکل از گزینه r- همراه با zip استفاده می‌کنیم :
PersianAdmins:~# zip -r padmins.zip *
adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#

برای اینکه فایل‎های فشرده شده را رمزگذاری کنیم به 2 صورت می‌توان عمل کرد :
1-رمز پرسیده خواهد شد
PersianAdmins:~# zip -r padmins.zip * -e
Enter password:
Verify password:
adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#


2- رمز مورد نظر را همزمان وارد می‌کنیم

PersianAdmins:~# zip -r -P www.admins.ir padmins.zip *
adding: ali/ (stored 0%)
adding: ali/navid/ (stored 0%)
adding: ali/navid/reza (stored 0%)
adding: file1.txt (stored 0%)
adding: file2.txt (deflated 50%)
PersianAdmins:~#


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

PersianAdmins:~# unzip padmins.zip
Archive: padmins.zip
[padmins.zip] ali/ password:
replace ali/navid/reza? [y]es, [n]o, [A]ll, [N]one, [r]ename: y
extracting: ali/navid/reza
replace file1.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: n
replace file2.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: file2.txt
PersianAdmins:~#
در غیر اینصورت سوالی پرسیده نخواهد شد :
PersianAdmins:~# unzip padmins.zip
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: ali/
creating: ali/navid/
extracting: ali/navid/reza
extracting: file1.txt
inflating: file2.txt
PersianAdmins:~#
باز کردن فایل zip از حالت فشرده در محل دیگری :
PersianAdmins:~# unzip padmins.zip -d /padmins/
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: /padmins/ali/
creating: /padmins/ali/navid/
extracting: /padmins/ali/navid/reza
extracting: /padmins/file1.txt
inflating: /padmins/file2.txt
PersianAdmins:~#
خارج کردن یک فایل خاص :
PersianAdmins:~# ls test/
PersianAdmins:~# unzip padmins.zip file1.txt -d test/
Archive: padmins.zip
extracting: test/file1.txt
PersianAdmins:~# ls test/
file1.txt
PersianAdmins:~#

بدست آوردن اطلاعاتی در مورد فایل‎ها و دایرکتوری‎های موجود در فایل zip :
PersianAdmins:~# unzip -v padmins.zip
Archive:  padmins.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
PersianAdmins:~#
بدست آوردن لیست فایل‎ها و دایرکتوری‎های موجود در فایل zip :


PersianAdmins:~# unzip -l padmins.zip
Archive:  padmins.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
PersianAdmins:~#
اطمینان از سالم بودن فایل zip :
PersianAdmins:~# unzip -t padmins.zip
Archive:  padmins.zip
[padmins.zip] ali/ password:
testing: ali/                     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.
PersianAdmins:~#

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

فشرده سازی یک فایل :
PersianAdmins:~# ls
file1.txt
PersianAdmins:~# gzip file1.txt
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~#

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

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

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

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

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

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

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

1-استفاده از دستور gzip -d
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# gzip -d file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

2-استفاده از ابزار gunzip
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# gunzip file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

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

 


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

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

فشرده سازی یک فایل :
PersianAdmins:~# ls
file1.txt
PersianAdmins:~# bzip2 file1.txt
PersianAdmins:~# ls
file1.txt.bz2
PersianAdmins:~#

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

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

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

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


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


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

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

1-استفاده از دستور bzip2 -d
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# bzip2 -d file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

2-استفاده از ابزار bunzip2
PersianAdmins:~# ls
file1.txt.gz
PersianAdmins:~# bunzip2 file1.txt.gz
PersianAdmins:~# ls
file1.txt
PersianAdmins:~#

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

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

با استفاده از tar و گزینه u- می‌توان فایل آرشیو را بروز کرد ولی این کار برای فایل‎های آرشیوی فشرده شده قابل انجام نیست.

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

 


مقالات
سیاست
رسانه‎های دیجیتال
علوم انسانی
مدیریت
روش تحقیق‌وتحلیل
متفرقه
درباره فدک
مدیریت
مجله مدیریت معاصر
آیات مدیریتی
عکس نوشته‌ها
عکس نوشته
بانک پژوهشگران مدیریتی
عناوین مقالات مدیریتی
منابع درسی (حوزه و دانشگاه)
مطالعات
رصدخانه شخصیت‌ها
رصدخانه - فرهنگی
رصدخانه - دانشگاهی
رصدخانه - رسانه
رصدخانه- رویدادهای علمی
زبان
لغت نامه
تست زبان روسی
ضرب المثل روسی
ضرب المثل انگلیسی
جملات چهار زبانه
logo-samandehi
درباره ما | ارتباط با ما | سیاست حفظ حریم خصوصی | مقررات | خط مشی کوکی‌ها |
نسخه پیش آلفا 2000-2022 CMS Fadak. ||| Version : 5.2 ||| By: Fadak Solutions نسخه قدیم