توجه :
"نقل تمام یا بخشی از مطالب سایت تنها با لینک به مطلب و معرفی نویسنده آن مجاز است"
دوستانی که از طریق موتورهای جستجوگر به دنبال مطلبی خاص وارد سایت شده اند و هم اکنون به دلیل پویایی سایت مطلبی در آن مورد مشاهد نمیکنند میتوانند به FORUM سایت مراجعه کنند.
| فشرده سازی در لینوکس |
| نگارش یافته توسط رضا بهروزی | ||||||
|
امروزه حتی با وجود هاردها و دستگاههای ذخیره سازی با حجم زیاد , فشرده سازی همچنان یکی از موارد مهم در همه سیستم عامل ها محسوب می شود , برخی از مزایای فشرده سازی عبارت است از : کاهش حجم اشغالی , راحتی در انتقال , راحتی در به اشتراک گذاری , افزایش سرعت انتقال ( تصور کنید که بخواهید 1000 فایل یک مگابایتی در مقایسه با یک فایل 1 گیگابایتی جا به جا کنید). معمولترین ابزارهای فشرده سازی در لینوکس gzip , bzip2 و zip می باشد که در بین کاربران عادی zip محبوبیت و کاربرد بیشتری دارد ولی در دنیای لینوکس 2 ابزار دیگر کاربرد و مقبولیت بیشتری دارند. خروجی پسوند هر کدام از ابزارهای بالا به شرح زیر می باشد :
bzip2=bz2
شاید در ذهن شما این سوال آمده است که "ما اغلب با پسوندهایی نظیر tar.gz و tar.bz2 روبرو هستیم , پس جایگاه و کاربرد tar چیست؟"gzip=gz zip=zip در پاسخ به این سوال باید گفت که tar ابزار فشرده سازی محسوب نمی شود و هیچ گونه فشرده سازی برای ما انجام نمی دهد بلکه ابزاری جهت تهیه پشتیبان و آرشیو است.tar در واقع یک ابزار کمکی برای gzip و bzip2 در امر فشرده سازی محسوب می شود از آنجائیکه این 2 ابزار قادر به فشرده سازی چندین فایل و دایرکتوری در یک فایل واحد نمی باشند , در واقع این ابزارها برای هر فایل , فایل فشرده شده جداگانه می سازند در صورتیکه tar امکان گرد هم آوردن چندین فایل و دایرکتوری در یک فایل را به آسانی در اختیار ما قرار می دهد. نصب ابزارهای مورد نیاز در صورت لزوم : معمولا ابزارهای tar و gzip در اکثریت لینوکس ها بطور پیش فرض نصب می باشند. نصب در دبین : نصب در ردهت :
استفاده از ابزار zip و unzip :
zip بر خلاف دو ابزار دیگر که فقط قابلیت فشرده سازی را دارند , امکان تهیه آرشیو هم داراست و نیازی به ابزارهای کمکی دیگر ندارد. فشرده سازی با استفاده از zip : حالت معمول فشرده سازی با zip ; در این مثال "*" نشان دهنده همه فایل های موجود در دایرکتوری جاری می باشد , شما می توانید آدرس فایل و دایرکتوری های مختلف را بجای آن وارد کنید :
PersianAdmins:~# zip padmins.zip *
در مثال بالا فایل ها و دایرکتوری های واقع در زیردایرکتوری ها فشرده نمی شوند و اصطلاحا برگشتی(recursively) عمل نمی کند , برای حل این مشکل از گزینه r- همراه با zip استفاده می کنیم :adding: ali/ (stored 0%) adding: file1.txt (stored 0%) adding: file2.txt (deflated 50%) PersianAdmins:~#
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 برخی از فایل ها وحود داشته باشند در مورد جایگزنی آنها از ما سوال خواهد پرسید :
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.zipArchive: 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.zipArchive: 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:~# فشرده سازی یک فایل :
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 ابزار در کنار یکدیگر استفاده کرد :
نکته : برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
باز کردن فایل های فشرده 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 راه پیش رو داریم :
استفاده از ابزار 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 ابزار در کنار یکدیگر استفاده کرد :
نکته : برای اطمینان از اینکه فایل فشرده شده سالم باشد , این دستور را اجرا می کنیم :
باز کردن فایل های فشرده 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 راه پیش رو داریم :
وقتی که از دستور tar استفاده می کنیم برای آنکه فایل در محلی دیگر از حالت فشرده خارج شود بدین ترتیب می توان عمل کرد :
tar xvfz padmins.tar.gz -C /path/to/extract/
با استفاده از tar و گزینه u- می توان فایل آرشیو را بروز کرد ولی این کار برای فایل های آرشیوی فشرده شده قابل انجام نیست. نکته مهم : سطوح مختلفی برای فشرده سازی وجود دارد , این سطوح با اعداد 0 الی 9 نشان داده می شوند.هر چه اعداد بزرگتر می شود , فشرده سازی بیشتری صورت می گیرد.در سطح 0 هیچ گونه فشرده سازی صورت نمی گیرد و همانند tar عمل می کند.با بالاتر رفتن سطح فشرده سازی میزان استفاده از منابع سیستم بیشتر شده و همچنین زمان آن هم بالاتر می رود. سطح فشرده سازی پیش فرض 6 می باشد که ما می توانیم بر حسب نیاز این سطوح را تغییر دهیم , کافیست در زمان استفاده از دستورات فشرده سازی مثلا برای استفاده از سطح 8 گزینه 8- را اضافه کنید. :||:: ارسال به دوست
|
||||||
| < بعد | قبل > |
|---|
آخرين مراجعات
| search.live.com |
| oss.oetiker.ch |
| www.google.com.eg |
| www.google.com |
| www.google.ae |
| admins.ir |
| ..ersianadmins.com |
| ..ersianadmins.com |
آخرین ارسالهای انجمن
PersianAdmins




ارسال نظر