فایل .tar.gz چیست؟
فایل با پسوند .tar.gz (که گاهی tarball نیز نامیده میشود) در واقع یک آرشیو tar (یک نوع بایگانی بدون فشردهسازی) است که سپس توسط الگوریتم gzip فشرده شده است. به عبارت دیگر، ابتدا یک فایل آرشیو با فرمت TAR ساخته میشود (با پسوند .tar)، سپس آن فایل با روش GZIP فشرده میگردد و پسوند .gz به انتهای آن افزوده میشود. این ترکیب دوگانهی پسوند (.tar.gz) نشاندهنده همین دو مرحله است. گاهی بهجای .tar.gz از پسوند کوتاهتر .tgz نیز استفاده میشود که معادل همان فرمت است.
این قالب آرشیو فشرده بهطور گسترده در سیستمهای یونیکسی و مخصوصاً لینوکسی برای توزیع نرمافزارها، کد منبع و دادهها استفاده میشود. دلیل محبوبیت آن این است که میتوان چندین فایل و پوشه را در قالب یک فایل تکی جمعآوری کرد و سپس با فشردهسازی، حجم کلی را کاهش داد. باید توجه داشت که فرمت TAR بهخودیخود فقط یک نوع بستهبندی است و دادهها را فشرده نمیکند؛ اما افزودن GZIP باعث میشود فایل نهایی هم مزایای آرشیو شدن (بایگانی همهچیز در یک فایل) و هم مزایای فشردهبودن (حجم کمتر) را داشته باشد. در صورتی که از قبل با این فرمت آشنا هستید، برای رفع خطاهای رايج در زمان استخراج .tar.gz این مطلب را بخوانید.

کاربردهای رایج فایل .tar.gz
فرمت .tar.gz بهدلیل انعطاف و تاریخچهاش، کاربردهای متنوعی در حوزههای تخصصی فناوری دارد.
رایجترین موارد استفاده عبارتاند از:
- توزیع نرمافزار و کد منبع در لینوکس/یونیکس:
توسعهدهندگان اغلب کد منبع برنامهها یا بستههای نرمافزاری را بهصورت فایلهای .tar.gz منتشر میکنند. این روش ساختار پوشهها، سطوح دسترسی و سایر فرادادههای (متادیتاهای) فایلها را دستنخورده حفظ میکند. - پشتیبانگیری (Backup) و بایگانی دادهها:
مدیران سیستم معمولاً مجموعهای از پروندهها یا کل یک دایرکتوری را در یک آرشیو tar قرار داده و سپس با gzip فشرده میکنند تا یک فایل پشتیبان کمحجمتر ایجاد شود. - انتقال فایلها و اشتراکگذاری پروژهها:
هنگامی که نیاز است تعداد زیادی فایل بهصورت یکجا منتقل شوند (مثلاً انتقال یک پروژه وب)، ایجاد یک tarball فشرده روش مناسبی است. - استفاده در وب و شبکه:
بسیاری از وبسایتها برای ارائهی مجموعهای از فایلها از .tar.gz بهره میگیرند. همچنین gzip در وبسرورها برای فشردهسازی محتوا در لحظهی ارسال به مرورگر رایج است (بدون اینکه لزوماً tar وجود داشته باشد).
آیا این فرمت برای کاربر عادی غیرمتخصص هم کاربرد خاصی دارد؟
معمولاً نه به شکل روزمره. کاربران ویندوز بیشتر با ZIP/RAR سروکار دارند. اما کاربر عادی ممکن است هنگام دانلود نرمافزارهای متنباز، بستههای نصب، یا دیتاستها با .tar.gz مواجه شود و لازم باشد آن را استخراج کند که در ادامه به آن خواهیم پرداخت.
تاریخچه و فلسفه پیدایش TAR

فرمت TAR (مخفف Tape Archive) در اواخر دهه ۱۹۷۰ میلادی ایجاد شد و نخستین بار در سال ۱۹۷۹ همراه با نسخه ۷ یونیکس ارائه گردید. انگیزهی اصلی ایجاد TAR، آرشیو کردن تعداد زیادی فایل روی دستگاههای نوار مغناطیسی (Tape) بود. tar بر اساس فلسفهی یونیکس، فقط وظیفهی «بایگانی/آرشیوسازی» را انجام میداد و فشردهسازی را به ابزارهای دیگر میسپرد. یکی از مزیتهای مهم TAR، حفظ فرادادهها یا همان متادیتاهای فایلها (سطح دسترسی، مالک، زمانها و …) در آرشیو است؛ ویژگیای که آن را برای پشتیبانگیری و توزیع نرمافزار مناسب میکند.
تاریخچه و فلسفه پیدایش GZIP
در اوایل دهه ۱۹۹۰، پروژه GNU به ابزاری آزاد و کارآمد برای فشردهسازی نیاز داشت. ابزار قدیمی compress از الگوریتم LZW استفاده میکرد که با محدودیتهای پتنتی (گواهی ثبت اختراع) روبرو بود. به همین دلیل، در سال ۱۹۹۲ فرمت و ابزار GZIP طراحی شد. gzip از الگوریتم Deflate (ترکیبی از LZ77 و کدگذاری هافمن) استفاده میکند. نکته مهم این است که gzip برای «آرشیو یا بایگانی کردن» نیست و معمولاً فقط یک فایل را فشرده میکند؛ بنابراین برای فشردهسازی مجموعهای از فایلها، ابتدا آنها را با tar در یک فایل واحد قرار میدهند و سپس آن را با gzip فشرده میکنند.
فایل .tar.gz یک فایل یا دو فایل است؟
.tar.gz از نظر سیستم فایل، یک فایل واحد است؛ اما از نظر مفهوم، حاصلِ دو مرحله است: (۱) آرشیوسازی با TAR و (۲) فشردهسازی با GZIP. هنگام استخراج، ابتدا لایه gzip باز میشود و خروجی آن یک فایل .tar است؛ سپس محتویات tar استخراج میشود.
ایجاد فایل .tar.gz در سیستمعاملهای مختلف
در لینوکس
رایجترین روش با خط فرمان:
tar -czvf نام_فایل.tar.gz مسیر/پوشه/یا/فایلها
نمونه یک دستور و شرح گزینههای استفادهشده:
tar -czvf project.tar.gz myproject/
- -c: ساخت آرشیو جدید
- -z: فشردهسازی/بازکردن با gzip
- -v: نمایش جزئیات
- -f: تعیین نام فایل خروجی
در محیطهای گرافیکی لینوکس (GNOME/KDE)، معمولاً با راستکلیک و گزینههایی مثل “Compress…” میتوانید فرمت tar.gz را برای فشردهسازی پیدا کنید.
در macOS
در ترمینال مک نیز همان دستورهای لینوکس قابل استفاده است:
tar -czvf Backup.tar.gz ~/Documents/myfolder
برای ساخت tar.gz به روش گرافیکی، ابزارهایی مانند Keka رایجاند (Finder بهصورت پیشفرض گزینه Compress را برای ZIP ارائه میدهد).
در ویندوز
ویندوز بهصورت پیشفرض tar.gz را مانند ZIP مدیریت نمیکند. روشهای رایج:
- 7-Zip (رایگان):
معمولاً باید دو مرحله انجام دهید: ابتدا .tar بسازید و سپس آن را به .gz فشرده کنید. - WinRAR:
امکان ساخت مستقیم tar.gz را فراهم میکند (این نرمافزار آزاد و رایگان نیست). - PowerShell در ویندوز 10/11:
در نسخههای جدید ویندوز، ابزار tar به صورت بومی در دسترس است:tar -czvf files.tar.gz C:\Users\Username\Files\
مراحل استخراج فایل .tar.gz (آموزش گامبهگام)
در لینوکس (ترمینال)
استخراج در پوشه فعلی:
tar -xzvf archive.tar.gz
استخراج در مسیر دلخواه (مثلاً /tmp/extract_here):
tar -xzvf archive.tar.gz -C /tmp/extract_here
در لینوکس (گرافیکی)
- روی فایل .tar.gz راستکلیک کنید.
- گزینه Extract Here (استخراج در همینجا) یا Extract To… را انتخاب کنید.
- پس از پایان، فایلها/پوشهها در نشانی انتخابشده ظاهر میشوند.
در macOS
- در Finder روی فایل .tar.gz دوبار کلیک کنید.
- Archive Utility بهطور خودکار محتوا را در همان مسیر استخراج میکند.
- در صورت نیاز، میتوانید برای این کار از ترمینال هم با دستور زیر استفاده کنید: tar -xzvf file.tar.gz
در ویندوز (7-Zip/WinRAR)
- روی فایل .tar.gz راستکلیک کنید.
- از منوی 7-Zip یا WinRAR گزینه Extract Here یا Extract to <Folder> را انتخاب کنید.
- اگر بعد از استخراج فقط فایل .tar دیدید، روی آن هم دوباره Extract بزنید
(برخی ابزارها/تنظیمات این دو مرحله را خودکار انجام میدهند).
در ویندوز (با PowerShell)
tar -xzvf file.tar.gz
مقایسه فرمت .tar.gz با .zip، .7z و .rar
tar.gz برای حفظ ساختار و مجوزها در محیطهای لینوکسی عالی است، اما دسترسی مستقیم به فایلهای داخل آرشیو بدون استخراج کامل را که در فرمتهایی مثل ZIP ممکن است فراهم نمیکند. ZIP برای کاربران عمومی و برای سازگاری فراگیر بهترین گزینه است. 7z معمولاً فشردهسازی قویتری دارد اما کندتر است و نیاز به نصب ابزاری جداگانه دارد. RAR امکانات خوبی مثل تقسیمبندی و ریکاوری دارد اما فرمت آن مالکیتی است. «فرمت مالکیتی» (Proprietary Format) یعنی فرمتی که مشخصات فنی و/یا الگوریتمها و پیادهسازی رسمیِ ساخت/نوشتن آن تحت کنترل یک شرکت یا مالک است و آن فرمت فقط با ابزارهای خاصی که از آن شرکت مجور دارند قابل ایجاد است.
| ویژگی | .tar.gz | .zip | .7z | .rar |
|---|---|---|---|---|
| نوع | آرشیو + فشردهسازی (دومرحلهای) | آرشیو + فشردهسازی | آرشیو + فشردهسازی | آرشیو + فشردهسازی (مالکیت انحصاری) |
| پشتیبانی داخلی | عالی در لینوکس/یونیکس | عالی در ویندوز/مک | نیازمند ابزار | نیازمند ابزار |
| فشردهسازی | خوب | متوسط | عالی | بسیار خوب |
| حفظ مجوزها (Linux perms) | بله | محدود | تا حدی | محدود |
| رمزنگاری داخلی | خیر | بله (بسته به نوع) | بله (AES-256) | بله (AES-256) |
خطاهای رایج و روش رفع آنها
در ادامه تعدادی از خطاها و روشهای رايج برطرف کردن آنها آورده شده است:
- unexpected end of file / Unexpected EOF:
معمولاً فایل ناقص دانلود/کپی شده است. اندازه فایل و در صورت وجود checksum را بررسی کنید و فایل را دوباره دریافت کنید. - invalid gzip header / not in gzip format:
احتمالاً فایل gzip نیست یا پسوند اشتباه است. نوع واقعی فایل را بررسی کنید و با گزینه صحیح استخراج کنید
(مثلاً -j برای .tar.bz2 و -J برای .tar.xz). - Permission denied:
مسیر مقصد اجازه نوشتن نمیدهد. در پوشهای که این دسترسی را دارید استخراج کنید یا سطح دسترسی را اصلاح کنید. - CRC / checksum error:
فایل خراب یا دستکاریشده است. بهترین راه دریافت دوباره نسخه سالم است. برای رفع سایر خطاها میتوانید به مقاله مربوطه در سایت فایلفاکس مراجعه کنید.
نکات امنیتی هنگام کار با .tar.gz
- در پوشه خالی استخراج کنید:
برای جلوگیری از «Tarbomb» یا پخش شدن فایلها در مسیرهای ناخواسته، قبل از استخراج، یک پوشه جدید بسازید و آرشیو را داخل آن استخراج کنید. - قبل از استخراج لیست بگیرید:
در لینوکس/مک میتوانید ابتدا محتوا را ببینید:tar -tvf file.tar.gz
- به مسیرهای مشکوک دقت کنید:
نامهایی مثل ../ یا مسیرهای مطلق میتوانند خطرناک باشند. آرشیوهای ناشناس را با دسترسی Administrator/Root استخراج نکنید. - اسکن بدافزار:
بهویژه در ویندوز، قبل و بعد از استخراج از آنتیویروس استفاده کنید؛ فایلهای اجرایی را بدون بررسی اجرا نکنید. - رمزنگاری:
خودِ tar.gz رمزنگاری داخلی ندارد؛ برای داده حساس از ابزارهایی مثل GPG یا فرمتهایی با رمزنگاری قوی (مثلاً 7z) استفاده کنید.