ארכיון Tar Gzip (.tar.gz)
POSIX.1 תקןTar Gzip (.tar.gz, המכונה גם .tgz) משלב ארכיון TAR עם דחיסת Gzip ומשמש לעיתים קרובות להפצת תוכנה ולאריזת קבצים.
בדיקה ומטא-נתונים
מערכות הפעלה ומנתחי קבצים מזהים קבצי TAR.GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי TAR.GZ על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 0):
1F 8B 08ייצוג ASCII: ..\x08
תקינה: POSIX.1 ustar (RFC 1952 gzip wrapped)
מפרט טכני
| מבנה המכולה | זרם ארכיון של POSIX ustar / GNU tar עטוף במכולת דחיסה של Gzip לפי RFC 1952 |
| דחיסה | אריזה בשני שלבים: סריאליזציה של TAR ולאחריה דחיסת DEFLATE |
| סדר בתים (Endianness) | מעטפת Gzip בסדר בתים Little-Endian העוטפת בלוקי TAR של POSIX עם ערכים אוקטליים |
| מרחבי צבע | לא רלוונטי (מכולת ארכיון) |
| ערוצים ומבנה | עצי ספריות Unix מרובי קבצים, קישורים סמליים, בעלות על קבצים וסיביות הרשאה |
| ממדים מרביים | גודל ארכיון בלתי מוגבל בהזרמה |
| שקיפות | נתוני הקבצים נשמרים ללא אובדן; שימור המטא-נתונים תלוי בפורמט הארכיון ובהגדרות החילוץ |
| הזרמה ופרוגרסיביות | הזרמה מקצה לקצה דרך צינור: פריסה וחילוץ בו-זמנית במעבר יחיד |
מטריצת השוואה טכנית: TAR.GZ מול מתחרים
| תכונה טכנית | TAR.GZ (נוכחי) | ZIP | 7Z | TAR.BZ2 |
|---|---|---|---|---|
| הרשאות Unix | שמירת POSIX מולדת ב-100% | מוגבל / לעיתים קרובות אובד | מאפיינים בסיסיים נשמרים | שמירת POSIX מולדת ב-100% |
| יחס דחיסה | בינוני (Gzip DEFLATE) | בינוני (ZIP DEFLATE) | גבוה מאוד (LZMA2) | גבוה (Bzip2 BWT) |
| מהירות פריסה | מהירה (~300 MB/s) | מהירה (~300 MB/s) | בינונית (~100 MB/s) | איטית (~40 MB/s) |
| תקן אקוסיסטם Linux | ברירת מחדל אוניברסלית לקוד פתוח | ברירת מחדל לשולחן עבודה צרכני | חביב חובבי Windows | שחרורי קוד מקור ישנים של Linux |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
שורת הפקודה מדווחת: gzip: stdin: invalid compressed data--format violated.
גורם שורש: בייטים פגומים במעטפת Gzip או הורדה שנקטעה.
שחזור: נסה לשחזר חלק מהארכיון באמצעות File2File.app Archive Extractor או באמצעות tar -izxf broken.tar.gz.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
ארכיוני TAR.GZ משלבים סיכונים של פצצות דחיסה ומתקפות מעבר תיקיות אם מחלצים אותם בחוסר זהירות.
ווקטורי תקיפה ידועים
- הגברה בסגנון Zip bomb, שבה קובץ .tar.gz קטן מתרחב לטרה-בייטים של אפסים.
- מעבר תיקיות (למשל ../../root/.ssh/authorized_keys) עלול לדרוס קבצים בעלי הרשאות מיוחדות.
- יצירת צומת התקן זדוני במהלך חילוץ בהרשאות root.
שיטות מומלצות להגנה: חלץ ארכיונים כמשתמש ללא הרשאות מיוחדות ונקה את כל נתיבי היעד מפני מתקפות מעבר תיקיות.
היסטוריה ואבני דרך
יתרונות מרכזיים
- פרויקטי תוכנה מפרסמים לעיתים קרובות ארכיוני קוד מקור כקובצי .tar.gz, משום ש-TAR מקבץ את עץ התיקיות ו-Gzip דוחס את הזרם.
- קובץ .tar.gz יכול לשמור הרשאות וקישורים סמליים בשכבת TAR שלו. השחזור תלוי בכלי החילוץ ובמערכת ההפעלה של היעד, לכן בדוק את ההרשאות לאחר חילוץ בפלטפורמה אחרת.
- ניתן להזרמה מלאה: ניתן להוריד, לפרוס ולחלץ דרך צינורות רשת מבלי לכתוב קבצים זמניים בדיסק.
מגבלות טכניות וחסרונות
- חילוץ קובץ יחיד דורש פריסה של כל הארכיון עד למיקום הקובץ המבוקש.
- יחס דחיסה נמוך יותר בהשוואה לחלופות מודרניות כמו .tar.xz או .tar.zst.
- פחות אינטואיטיבי במערכות Windows ישנות לעומת פורמט ZIP הנתמך באופן נרחב.
עובדות טכניות מעניינות
- במערכות MS-DOS עם מגבלת שמות הקבצים 8.3, הסיומת .tar.gz קוצרה ל-.tgz.
- בכל פעם שמריצים npm install, npm מוריד ומחלץ חבילות .tgz (tar.gz) מאחורי הקלעים.
- משתמשי Linux נוהגים לזכור את הפקודה לחילוץ tar.gz באמצעות הביטוי "eXtract Ze File": tar -xzf file.tar.gz.
שאלות טכניות נפוצות
מה ההבדל בין .tar.gz ל-.zip?
.zip שומר קבצים עם ספרייה מרכזית, ואילו .tar.gz עוטף זרם TAR ב-Gzip. שימור המטא-נתונים תלוי בארכיון ובהגדרות החילוץ.
האם .tgz זהה ל-.tar.gz?
כן. .tgz הוא סיומת מקוצרת בת שלוש אותיות עבור .tar.gz, שנוצרה במקור עבור מערכות הפעלה עם מגבלות שמות קבצים בפורמט 8.3, כמו DOS.
כיצד אוכל לחלץ קובץ .tar.gz ב-Windows?
אפשר לחלץ קובצי .tar.gz ישירות בדפדפן באמצעות File2File.app, בלי להתקין WinRAR או 7-Zip.