۱. قالب TAR (Tape Archive)
TAR یک قالب آرشیو سنتی در سیستمهای یونیکس است که در استانداردهای POSIX.1-1988 و POSIX.1-2001 تعریف شده است. هدف اولیه آن آرشیو کردن فایلها روی نوارهای پشتیبان بود.
ویژگیهای کلیدی:
-
فاقد فشردهسازی: TAR بهتنهایی هیچ گونه فشردهسازی ارائه نمیدهد و صرفاً یک قالب بستهبندی است.
-
حفظ متادیتای یونیکس: مجوزها (permissions)، مالکیت (ownership)، و زمانبندی (timestamps) فایلها را حفظ میکند.
-
ساختار مبتنی بر بلاک: هر ورودی شامل یک هدر ۵۱۲ بایتی حاوی متادیتا و سپس خود دادههای فایل است که تا مضربی از ۵۱۲ بایت گرد میشود.
-
پشتیبانی از انواع فایل: لینکهای سخت و سمبلیک، دایرکتوریها، دستگاههای کاراکتری و بلوکی، و پایپهای نامگذاریشده (FIFO).
انواع TAR:
| نوع | توضیح |
|---|---|
| USTAR | نسخه استاندارد POSIX که محدودیتهای نسخههای قدیمی را برطرف کرده است |
| PAX | نسخه مدرن POSIX.1-2001 با پشتیبانی از نامهای طولانی، اندازه نامحدود فایل، و ویژگیهای افزوده |
| GNU TAR | افزونههای اختصاصی GNU برای پشتیبانی از نامهای طولانی و لینکهای طولانی |
مثال استفاده:
# ایجاد یک آرشیو TAR بدون فشردهسازی tar -cf archive.tar file1.txt file2.txt # استخراج آرشیو TAR tar -xf archive.tar
۲. قالب TAR.GZ (یا TGZ)
این قالب ترکیبی از آرشیو TAR و فشردهسازی GZip است. ابتدا فایلها توسط TAR در یک آرشیو واحد بستهبندی میشوند، سپس کل آرشیو با GZip فشرده میگردد.
ویژگیهای کلیدی:
-
الگوریتم فشردهسازی: DEFLATE (ترکیبی از LZ77 و کدگذاری هافمن).
-
سرعت بالا: سریعترین گزینه در میان قالبهای رایج مبتنی بر TAR.
-
پسوندهای معادل:
.tgzو.taz.
مثال استفاده:
# ایجاد آرشیو فشرده با GZip tar -czvf archive.tar.gz file1.txt file2.txt # استخراج آرشیو GZip tar -xzvf archive.tar.gz
۳. قالب TAR.BZ2 (یا TBZ2)
ترکیبی از TAR و فشردهسازی BZip2.
ویژگیهای کلیدی:
-
الگوریتم فشردهسازی: Burrows-Wheeler (BWT) به همراه کدگذاری هافمن.
-
نسبت فشردهسازی بهتر: فایلهای حاصل معمولاً ۱۰ تا ۲۰ درصد کوچکتر از معادل
.tar.gzهستند. -
سرعت کمتر: فرایند فشردهسازی ۲ تا ۵ برابر کندتر از GZip است.
-
پسوندهای معادل:
.tbz2و.tbz.
کاربرد معمول: زمانی که حجم نهایی فایل مهمتر از سرعت فشردهسازی باشد؛ مانند آرشیوهای بلندمدت، انتقال با پهنای باند محدود، و توزیع کد منبع پروژههای بزرگ.
مثال استفاده:
# ایجاد آرشیو فشرده با BZip2 tar -cjvf archive.tar.bz2 file1.txt file2.txt # استخراج آرشیو BZip2 tar -xjvf archive.tar.bz2
۴. قالب TAR.XZ (یا TXZ)
ترکیبی از TAR و فشردهسازی XZ که توسط پروژه Tukaani از سال ۲۰۰۹ توسعه یافته است.
ویژگیهای کلیدی:
-
الگوریتم فشردهسازی: LZMA2 که نسخه بهبودیافته LZMA با پشتیبانی از پردازش چندنخی و مدیریت بهتر دادههای غیرقابلفشردهسازی است.
-
بالاترین نسبت فشردهسازی: در میان قالبهای مبتنی بر TAR، بهترین نسبت فشردهسازی را ارائه میدهد.
-
یکپارچگی داده: شامل چکسام CRC-32 و CRC-64 برای تشخیص خرابی دادهها.
-
پسوند معادل:
.txz.
کاربرد معمول: قالب ترجیحی برای توزیع کد منبع در اکوسیستم متنباز — هسته لینوکس، ابزارهای GNU coreutils، و بسیاری از پروژههای دیگر بهصورت .tar.xz منتشر میشوند.
مثال استفاده:
# ایجاد آرشیو فشرده با XZ tar -cJvf archive.tar.xz file1.txt file2.txt # استخراج آرشیو XZ tar -xJvf archive.tar.xz
۵. قالب ZIP
قالب آرشیو و فشردهسازی همهگیر که در سال ۱۹۸۹ توسط فیل کاتز معرفی شد.
ویژگیهای کلیدی:
-
فشردهسازی مستقل هر فایل: هر فایل درون آرشیو میتواند با روش فشردهسازی مخصوص خود فشرده شود.
-
پشتیبانی از روشهای فشردهسازی متعدد: DEFLATE (پیشفرض)، Deflate64، BZIP2، LZMA، XZ، PPMd، Zstandard.
-
پشتیبانی از رمزگذاری: AES-256 از سال ۲۰۰۳.
-
پشتیبانی گسترده: بهصورت پیشفرض در تمام سیستمعاملهای مدرن (ویندوز، macOS، لینوکس) پشتیبانی میشود.
-
ساختار دایرکتوری مرکزی: فهرست مطالب در انتهای فایل قرار دارد که امکان دسترسی سریع به فایلهای جداگانه را فراهم میکند.
-
پشتیبانی از آرشیوهای چندبخشی (multi-volume) و خود-استخراجشونده (SFX).
مثال استفاده:
# ایجاد آرشیو ZIP (در لینوکس با دستور zip) zip archive.zip file1.txt file2.txt # استخراج آرشیو ZIP unzip archive.zip
۶. قالب 7Z
قالب اختصاصی نرمافزار 7-Zip که برای نسبت فشردهسازی بسیار بالا طراحی شده است.
ویژگیهای کلیدی:
-
معماری باز: قابلیت پشتیبانی از هر روش فشردهسازی جدید.
-
روش فشردهسازی پیشفرض: LZMA با دیکشنری متغیر تا ۴ گیگابایت.
-
نسبت فشردهسازی بسیار بالا: قابلرقابت با دیگر قالبهای پرنسبت مانند RAR.
-
رمزگذاری قوی: AES-256 با استفاده از تابع SHA-256 برای تولید کلید از رمز عبور.
-
پشتیبانی از فایلهای تا ۱۶ میلیارد گیگابایت.
-
فشردهسازی توکار (Solid Compression): فایلهای متعدد را بهصورت یک جریان داده واحد فشرده میکند که نسبت فشردهسازی را بهبود میبخشد.
-
نامهای فایل یونیکد.
مثال استفاده (با نرمافزار 7-Zip):
# ایجاد آرشیو 7Z (خط فرمان 7-Zip) 7z a archive.7z file1.txt file2.txt # استخراج آرشیو 7Z 7z x archive.7z
جدول مقایسه کلی
| قالب | فشردهسازی | الگوریتم | نسبت فشردهسازی | سرعت فشردهسازی | پشتیبانی پیشفرض در ویندوز |
|---|---|---|---|---|---|
.tar | خیر | — | — | — | خیر |
.tar.gz | بله | DEFLATE | متوسط | بالا | خیر |
.tar.bz2 | بله | BWT + هافمن | خوب (۱۰-۲۰٪ بهتر از gzip) | پایین | خیر |
.tar.xz | بله | LZMA2 | عالی | بسیار پایین | خیر |
.zip | بله | DEFLATE (پیشفرض) | متوسط | بالا | بله |
.7z | بله | LZMA (پیشفرض) | عالی | پایین | خیر (نیاز به 7-Zip) |