آرشیو کردن یعنی چی و به چه دردی می خوره؟
خیلی وقت ها پیش میاد که شما لازم دارید که تعداد زیادی از فایل ها رو یک جایی ذخیره کنید (برای نگهداری در طولانی مدت) یا حتی ممکنه لازم باشه که فایل هاتون رو از جایی به جای دیگری منتقل کنید. در این جود مواقع، حرفه ای ترین راه اینه که شما یک آرشیو از این فایل ها ایجاد کنید و بعد کار باهاش رو شروع کنید. دلیلش اینه که تو این حالت مدیریت فایل ها بسیار ساده تر می شه و فایلی جا نمی مونه. همچنین دسته بندی و نگهداریشون هم خیلی مرتب تر می شه. در نظر داشته باشید که همین دایرکتوری ها و فولدر هایی که ما روی سیستم هامون داریم در واقع یک آرشیو هستش که سیستم ما ایجاد مرده برای مدیریت بهتر اطلاعات.
توجه داشته باشید که فشرده سازی با آرشیو کردن فرق می کنه. شما می تونید تعدادی فایل رو آرشیو کنید ولی تغییری در سایز اونها ایحجاد نکنید. اما در زمان فشرده سازی، با بهینه کردن ساختار اطلاعات، حجم اونها رو پایین میاریم.
الگوریتم های فشرده سازی مختلف:
توضیح الگوریتم Lossy: در این نوع از فشرده سازی، برای پایین آوردن حجم فایل بخشی از اطلاعات حذف می شه. از این نوع الگوریتم ها بیشتر در فایل های صوتی و تصویری استفاده می شه. Mp3. یکی از بهترین نمونه ها برای ای نوع از الگوریتم هاست.
توضیح الگوریتم Lossless: این نوع از الگوریتم ها هیچ بخشی از اطلاعات رو حذف نمی کنن و فقط با یک سری تکنیک هایی که در هر کدوم متفاوته، اطلاعات رو بهینه می کنن. PNG یک مثال خوب برای این گونه از الگوریتم هاست.
ابزار های مختلف برای فشرده سازی:
توضیح zip: اگه لازمه فایلی که ایجاد می کنید تو سیستم های ویندوزی استفاده بشه، این ابزار بهترین گزینه برای شماست
توضیح gzip: اگه فایل قرار روی سیستم های یونیکسی/لینوکسی استفاده بشه، این ابزار گزینه خوبی هستش. تقریبا تو همه ی توزیع های لینوکس می شه از این ابزار استفاده کرد اما یکم کار باهاش زمان بره (نسبت به بقه ابزار ها)
توضیح bzip2: مثل gzip هستش اما از یک الگوریتم دیگه استفاده می کنه که ممکنه حجم فایل نهایی کمتر بشه اما یکم زمان بیشتری می بره.
توضیح xz: می شه گفت بهترین فشرده سازی رو انجام می ده اما زمان بیشتری می بره. همچنین این ابزار نسبتا جدیدی محسوب می شه و ممکنه روی تمام نسخه های لینوکس موجود نباشه.
توضیح tar: این ابزار بیشتر برای آرشیو کردن استفاده می شه و نه برای فشرده سازی لازمه بگیم که می شه فشرده سازی هم انجام داد.
نحوه کار با ابزار های فشرده سازی:
سویچ های زیادی برای هر کدام از ابزارهای زیر وجود دارد که شما می تونید با وارد کردن سویچ -h تمامی آنها را ببینید.
برای شروع کار با ابزار zip به شکل زیر،اول لازمه که روی سیستم نصبش کنید.
$ apt-get install zip unzip
در شکل زیر می تونید ببینید که ما برای تست از دو عکس استفاده کردیم که به نسبت حجم بالایی دارن.
(در آخر این مقاله می تونید لینک دانلود این عکس ها و خود عکس ها رو ببینید).
$ ls -lh
شما می تونید به شکل زیر یک فایل زیپ با نام دلخواهتون ایجاد کنید.
$ zip Paris.zip Paris-1652.jpg
به شکل زیر یم تونید بدون اینکه فایل رو از حالت فشرده خارج کنید، لیست محتواش رو ببینید.
$ unzip -l paris.zip
شما می تونید با استفاده از دستور زیر، فایلتون رو از حالت فشرده خارج کنید.
$ unzip paris.zip
ابزار gzip به طور معمول، روی تمامی توزیع های لینوکس نصب هست. اگر هم نبود می تونید به راحتی نصبش کنید.
برای فشرده سازی یک فایل با استفاده از این ابزار، می تونید به شکل زیر عمل کنید.
وارد کردین سویچ -k الزامی نیست و تنها به این معنا می باشد که فایل اصلی رو بعد از فشرده سازی حذف نکنه و رو یسیستم نگه داره.
$ gzip -k Persia-1701.jpg
در شکل زیر می تونید نسخه فشرده شده از این عکس رو مشاهده کنید که پسوند .gz داره.
$ ls -lh
برای اینکه نهایت زور رو در فشرده سازی به کار ببریم می تونید از ۱ تا ۹ یک عددی رو به این ابزار بدین. (هر چی عدد بزرگتری وارد کند، ابزار زور بیشتری برای فشرده سازی می زند). همچنین شما می توندی به شکل زیر ۲ فایل رو به صورت هم زمان فشرده کنید.
$ gzip -9 Persia-1701.jpg paris-1652.jpg
در تصویر زیر می تونید ببینید که هر دو فایل به صورت مجزا فشرده شدن (به حجمشون توجه کنید).
$ ls -lh
به شکل زیر می تونید هر دو فایل رو به صورت یک جا فشرده کنید و در یک فایل قرار بدین.
$ gzip -c pparis-1652.jpg Persia-1701.jpg > photos.gz
در اینجا ما دو فایل اول رو حذف می کنیم و شما می تونید هر دو فایل رو در قالب یک فایل روی سیستمتون داشته باشید.
$ ls -lh
برای اینکه یک فایل رو از حالت فشرده خارج کنید می تونید به شکل زیر عمل کنید.
$ ls -lh
$ gzip -d Persia-1701.jpg.gz
$ ls -lh
برای استفاده از ابزار bzip2، می تونید به شکل زیر روی سیستمتون نصبش کنید.
(روی بعضی از توزیع ها جدید، پیش فرض نصب هستش)
$ apt-get install bzip2
برای فشرده سازی فایل ها با حداکثر توان می تونید از دستور زیر استفاده کنید (توجه داشته باشید که سویچ -k) اختیاری هستش و برای نگهداری فایل های اولیه استفاده می شه).
$bzip2 -k9 pparis-1652.jpg Persia-1701.jpg $ ls -lh
برای اینکه فایل ها رو از حالت فشرده خارج کنید می تونید از دستور زیر استفاده کنید
$ bzip2 -d Persia-1701.jpg.bz2 pparis-1652.jpg.bz2 $ ls -lh
برای استفاده از ابزار xz می تونید به صورت زیر، روی سیستمتون نصبش کنید.
$ apt-get install xz-utils
$ rm -rf pparis-1652.jpg Persia-1701.jpg $ ls -lh
$ xz -z pparis-1652.jpg Persia-1701.jpg
در شکل زیر می تونید ببینید که فایل ها با پسوند xz روی سیستم فشرده شدن.
$ ls -lh
برای اینکه فایل ها رو از حالت فشرده خارج کنید، می تونید از دستور زیر استفاده کنید.
$ xz -d Persia-1701.jpg.xz pparis-1652.jpg.xz $ ls -lh
ابزار tar بر روی تمامی توزیع های لینوکس به صورت پیش فرض نصب هستش.
شما می تونید با استفاده از این ابزار هر فایل و یا حتی دایرکتوری که دوست دارید رو آرشیو کنید. در شکل زیر می بینید که ما یک دایرکتوری Test داریم که داخلش عکس هامون هستش.
$ ls
با استفاده از دستور زیر می تونید یک فایل آرشیو با اسم دلخاهتون درست کنید.
$ tar -cvf photos.tar /home/debian/Test
در شکل زیر می بینید که فایل آرشیو در کنار دایرکتوری اولیه ایجاد شده.
$ ls
برای انجام تست، ما در اینجا دایرکتوری اولیه رو پاک می کنیم.
$ rm -rf Test/ $ ls
به شکل زیر می تونید فایل آرشیو رو روی سیستمتون باز کنید و ازش استفاده کنید.
$ tar -xvf photos.tar
توجه داشته باشید که بعد از باز کردن این فایل، دایرکتوری اولیه رو با آدرس کاملش در اختیار ما قرار داده.
$ cd home/debian/Test $ pw