فشرده سازی در لینوکس zipping in linux
فشرده سازی در لینوکس
نگارش یافته توسط رضا بهروزی لینک مستقیم منبع امروزه حتی با وجود هاردها و دستگاههای ذخیره سازی با حجم زیاد , فشرده سازی همچنان یکی از موارد مهم در همه سیستم عامل ها محسوب می شود , برخی از مزایای فشرده سازی عبارت است از : کاهش حجم اشغالی , راحتی در انتقال , راحتی در به اشتراک گذاری , افزایش سرعت انتقال ( تصور کنید که بخواهید 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 برخی از فایل ها وحود داشته باشند در مورد جایگزنی آنها از ما سوال خواهد پرسید : 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.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- را اضافه کنید. |
اکنون ساعت 04:00 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد. |
Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)