فرمت tar.bz2، یکی از محبوب ترین فرمت ها برای فشرده سازی فایل در سیستمهای لینوکسی میباشد. زمانی که میخواهید مجموعه ای از فایل ها و پوشه ها را با هم فشرده کرده و در یک قالبی کم حجم نگهداری کنید، این فرمت یک گزینه مناسب برای انجام این کار است. این فرمت یک بسته بندی tar میباشد که با استفاده از الگوریتم bzip2 فشرده سازی شده است.
tar چیست و چرا ابزار اصلی کار با آرشیوها در لینوکس است؟

در دنیای لینوکس و یونیکس، tar یکی از ضروریترین ابزارها برای مدیریت فایلها و آرشیوهاست. نام “tar” از ترکیب دو کلمه Tape Archive میآید. چرا که در ابتدا برای آرشیوسازی فایلها روی نوارهای مغناطیسی (tape) طراحی شده بود.
اگر بخواهید چند فایل و پوشه را با هم ترکیب کرده، نگه دارید، انتقال دهید یا بکآپ بگیرید، tar انتخابی مطمئن و پرکاربرد است. به عبارت دیگر، یک فایل “tarball” یعنی یک آرشیو ساختهشده توسط tar مثل یک جعبه دیجیتال است که چندین فایل و دایرکتوری را با ساختار، مجوزها و متادیتا (مالکیت، تاریخ، سطح دسترسی) داخل خودش نگه میدارد.
استفادههای متداول tar
- بکآپ و آرشیوسازی: وقتی میخواهید نسخهای از دایرکتوریها یا پروژهها را ذخیره کنید.
- انتقال بین سرورها یا سیستمها: چون tarball تمام ساختار دایرکتوری و مجوزها را حفظ میکند، جابهجایی بین سرورها آسانتر و مطمئنتر است.
- فشردهسازی همراه با آرشیو: با ترکیب tar با برنامههای فشردهسازی مثل gzip یا bzip2 میتوان آرشیوها را با حجم کمتر ذخیره یا منتقل کرد.
bzip2 چیست؟ فشردهسازی با کارایی بالا در لینوکس

tar و bzip2 مکمل هم هستند: وقتی لازم باشد چند فایل یا پوشه را با هم فشرده و آرشیو کنیم، معمولاً اول با tar آرشیو میسازیم و سپس با bzip2 آن را فشرده میکنیم. bzip2 خودش ابزار فشردهسازی است نه آرشیوساز. بنابراین قادر نیست مستقیماً چند فایل و فولدر را بستهبندی کند. بزرگترین مزیت bzip2 نسبت به گزینههای قدیمیتر مثل gzip یا ZIP این است که فایلها را با نرخ فشردهسازی بالاتری کوچکتر میکند.
در نتیجه وقتی هدف شما ذخیرهسازی آرشیوهای بزرگ با کمترین حجم ممکن است (مثل بکاپگیری یا آرشیو پروژهها)، bzip2 انتخاب مناسبی است.
چگونه فایل tar.bz2 را در لینوکس استخراج (Unzip) کنیم؟

قبل از اینکه فایلها را از آرشیو خارج کنید، میتوان با دستور زیر فهرست فایلها را مشاهده کرد:
tar -tf file.tar.bz2
گزینه -t لیست محتویات را نمایش میدهد و -f نام فایل آرشیو را مشخص میکند. اگر بخواهید اطلاعات بیشتری مانند حجم فایل، تاریخ و مجوزها هم ببینید، میتوانید از گزینه -v استفاده کنید:
tar -tvf file.tar.bz2
با این کار، اطلاعاتی مانند نوع مجوزها، مالکیت، حجم و تاریخ ساخت هر فایل در خروجی نشان داده میشوند.
استخراج (Unzip) آرشیو tar.bz2

برای استخراج کامل آرشیو کافی است دستور زیر را وارد کنید:
tar -xf file.tar.bz2
دستور tar خودش تشخیص میدهد که آرشیو با bzip2 فشرده شده است و متناسب با آن، فرایند استخراج را انجام میدهد.
اگر بخواهید فایلها را همراه با نمایش نامشان استخراج کنید، از گزینه -v هم استفاده کنید:
tar -xvf file.tar.bz2
همچنین، بصورت پیشفرض فایلها در همان مسیر جاری (current directory) استخراج میشوند. اگر میخواهید در پوشه خاصی آنها را استخراج کنید، میتوانید از گزینه -C استفاده کنید:
tar -xf file.tar.bz2 -C /path/to/destination
استخراج بخشی از فایلها یا پوشهها داخل آرشیو

گاهی لازم است فقط تعدادی فایل یا پوشه از داخل آرشیو استخراج شوند، نه همه. در این صورت:
tar -xf file.tar.bz2 dir1/file1 dir2
در این دستور، dir1/file1 و dir2 نام دقیق مسیرها داخل آرشیو هستند.
استخراج از طریق stdin

اگر فایل tar.bz2 را مستقیم از اینترنت دانلود میکنید و نمیخواهید ابتدا آن را ذخیره کنید، میتوانید با ترکیب ابزار دانلود و tar آن را مستقیم استخراج کنید. به عنوان مثال:
wget -O - | tar -xj
در این روش، خروجی wget از طریق pipe به tar هدایت میشود و گزینه -j به tar میگوید که آرشیو فشرده با bzip2 است.
ساخت یک آرشیو tar.bz2 جدید

اگر بخواهید فایلها یا پوشهها را فشرده و آرشیو کنید، از دستور زیر استفاده کنید:
tar -cjf files.tar.bz2 folder1 folder2 file1
-c: ساخت آرشیو-j: استفاده از فشردهسازی bzip2-f: تعیین نام فایل آرشیو
مثلاً با این دستور، تمامی محتویات folder1، folder2 و همچنین file1 در داخل فایل files.tar.bz2 قرار میگیرند.
فرمت tar.bz2 ترکیبی از بستهبندی (tar) و فشردهسازی (bzip2) را ارائه میدهد که برای آرشیوهای بزرگ یا مجموعههای چندفایلی بسیار مناسب است. با ابزار tar در لینوکس میتوان به سادگی:
- محتویات آرشیو را قبل از استخراج بررسی کرد
- آرشیو را کامل استخراج کرد
- فقط فایل یا پوشه خاصی را از آرشیو بیرون کشید
- آرشیو جدیدی با فشردهسازی bzip2 ایجاد کرد
اگر با این مفاهیم آشنا باشید، مدیریت فایلهای فشرده و آرشیوی در سرورها یا سیستمهای شخصی بسیار سادهتر و حرفهایتر خواهد شد.