דף הבית » איך ל » מהי היתרון של שימוש בתבנית קובץ Tar היום?

    מהי היתרון של שימוש בתבנית קובץ Tar היום?


    הפורמט של ארכיון הזפת הוא, בשנים המחשוב, מתושלח אמיתי אך הוא עדיין בשימוש רב היום. מה הופך את תבנית זפת כל כך שימושי זמן רב לאחר הקמתה?

    מפגש השאלות והתשובות של היום מגיע אלינו באדיבות SuperUser - חלוקה מחודשת של Stack Exchange, קיבוץ מונחה על ידי הקהילה של אתרי אינטרנט של Q & A.

    השאלה

    SuperUser הקורא MarcusJ הוא סקרן לגבי פורמט זפת ולמה אנחנו עדיין משתמשים בו אחרי כל השנים האלה:

    אני יודע כי זפת נעשה עבור קלטות ארכיון בחזרה היום, אבל היום יש לנו ארכיון פורמטים של קבצים כי הן קבצים מצטברים ולבצע דחיסה בתוך אותו קובץ לוגי בפורמט.

    שאלות:

    • האם יש עונש ביצועים במהלך שלבי הצבירה / דחיסה / דקומפרסיה לשימוש בזפת שקופסה ב- gzip או bzip2, בהשוואה לפורמט קובץ שעושה צבירה ודחיסה במבנה נתונים זהה? נניח שזמן הריצה של המדחס שהושווה זהה (לדוגמה, gzip ו- deflate דומים).
    • האם יש תכונות של פורמט קובץ זפת כי פורמטים של קבצים אחרים, כמו .7z ו. Zip אין?
    • מאחר שזפת היא תבנית קובץ ישנה, ​​ותבניות קובץ חדשות יותר קיימות כיום, מדוע זפת (בין אם היא מקופלת ב- gzip, bzip2 או אפילו ה- xz החדש) עדיין בשימוש נרחב כיום ב- GNU / Linux, Android, BSD, ו- UNIX מערכות הפעלה, עבור העברות קבצים, מקור התוכנית הורדות בינאריות, ולפעמים אפילו בפורמט מנהל החבילה?

    זו שאלה סבירה לחלוטין; כל כך הרבה השתנה בעולם המחשוב בשלושים השנים האחרונות, אבל אנחנו עדיין משתמשים בפורמט זפת. מה הסיפור?

    התשובה

    SuperUser תורם Alquixotic מציעה כמה תובנה אריכות ימים ופונקציונליות של פורמט זפת:

    חלק 1: ביצועים

    הנה השוואה של שני workflows נפרדים ומה הם עושים.

    יש לך קובץ בדיסק blah.tar.gz שהוא, למשל, 1 GB של gzip דחוסים נתונים אשר, כאשר לא דחוס, תופסת 2 GB (כך יחס דחיסה של 50%).

    הדרך שבה היית יוצר את זה, אם היית עושה ארכיון ו דחיסה בנפרד, יהיה:

    זפת cf קבצים blah.tar ... 

    זה יביא blah.tar שהוא רק צבירה של קבצים…  בצורה לא דחוס.

    אז היית עושה

    gahip blah.tar 

    זה היה לקרוא את התוכן של blah.tar מהדיסק, לדחוס אותם באמצעות אלגוריתם דחיסת gzip, לכתוב את התוכן blah.tar.gz, ואז לבטל קישור (למחוק) את הקובץ blah.tar.

    עכשיו, בואו לשחרר לחץ!

    דרך 1

    יש לך blah.tar.gz, בדרך זו או אחרת.

    אתה מחליט לפעול:

    יריות 

    זה יהיה

    • לקרוא את 1GB נתונים דחוסים של תוכן blah.tar.gz.
    • עיבוד נתונים דחוסים דרך gzip מדחס לחץ בזיכרון.
    • כמו מאגר זיכרון מתמלא עם "בלוק" שווה של נתונים, לכתוב את הנתונים לא דחוס לתוך הקובץblah.tar על הדיסק וחזור עד שכל הנתונים הדחוסים יקראו.
    • בטל את הקישור (מחק) את הקובץ blah.tar.gz.

    עכשיו יש לך blah.tar על דיסק, אשר לא דחוס, אבל מכיל אחד או יותר קבצים בתוכו, עם תקורה נמוכה מאוד מבנה נתונים. גודל הקובץ הוא כנראה כמה בתים גדול מסכום כל נתוני הקובץ יהיה.

    אתה רץ:

    tar xvf blah.tar 

    זה יהיה

    • לקרוא את 2GB של תוכן נתונים לא דחוס של blah.tar וה זפת מבנה הנתונים של מבנה הנתונים, כולל מידע על הרשאות קבצים, שמות קבצים, ספריות, וכו '.
    • כתוב לדיסק את הנתונים של 2GB ואת המטא נתונים. הדבר כרוך בתרגום מידע מבנה / מטה נתונים ליצירת קבצים חדשים וספריות על הדיסק לפי הצורך, או לשכתב קבצים קיימים וספריות עם תוכן נתונים חדשים.

    סך כל הנתונים לקרוא מהדיסק בתהליך זה היה 1GB (עבור gunzip) + 2GB (עבור זפת) = 3GB.

    סך כל הנתונים כתבתי לדיסק בתהליך זה היה 2GB (עבור gunzip) + 2GB (עבור זפת) + כמה בתים עבור metadata = כ 4GB.

    דרך 2

    יש לך blah.tar.gz, בדרך זו או אחרת.

    אתה מחליט לפעול:

    tar xzzf blah.tar.gz 

    זה יהיה

    • לקרוא את 1GB נתונים דחוסים של תוכן blah.tar.gz, גוש בכל פעם, לתוך הזיכרון.
    • עיבוד נתונים דחוסים דרך gzip מדחס לחץ בזיכרון.
    • כמו מאגר זיכרון מתמלא, זה יהיה צינור כי הנתונים, בזיכרון, עד זפת מנתח קובץ פורמט, אשר יקרא את המידע על metadata, וכו 'ונתוני קובץ לא דחוס.
    • כמו מאגר זיכרון מתמלא ב זפת מנתח קובץ, זה יהיה לכתוב את הנתונים לא דחוס לדיסק, על ידי יצירת קבצים וספריות ומילוי אותם עם תוכן לא דחוס.

    סך כל הנתונים לקרוא מהדיסק בתהליך זה היה 1GB של נתונים דחוסים, נקודה.

    סך כל הנתונים כתבתי לדיסק בתהליך זה היה 2GB של נתונים לא דחוסים + כמה בתים עבור metadata = על 2GB.

    אם אתה מבחין, כמות הדיסק I / O ב דרך 2 J זהה אל הדיסק אני / O מבוצע על ידי, נניח, רוכסן או7-Zip תוכניות, התאמת עבור כל ההבדלים יחס דחיסה.

    ואם יחס הדחיסה הוא הדאגה שלך, השתמש XZ מדחס כדי לתמצת זפת, ויש לך ארכיון TAR של LZMA2, שהוא בדיוק יעיל כמו האלגוריתם המתקדם ביותר הזמין 7-Zip Youנות

    חלק 2: תכונות

    זפת מאחסן הרשאות UNIX בתוך המטא נתונים של הקובץ שלו, והוא מוכר היטב ונבדק בהצלחה לארוז בהצלחה ספרייה עם כל מיני הרשאות שונות, קישורים סמליים וכו 'יש יותר מאשר כמה מקרים שבהם ייתכן שיהיה צורך גלובוס חבורה של קבצים לתוך קובץ בודד או זרם, אך לא בהכרח לדחוס אותו (אם כי דחיסה הוא שימושי ולעתים קרובות נעשה שימוש).

    חלק 3: תאימות

    כלים רבים מופצים בטופס המקור או בינארי כמו .tar.gz או .tar.bz2 כי זה "מכנה משותף הנמוך ביותר" פורמט הקובץ: כמו רוב משתמשי Windows יש גישה. Zip או decompressors., רוב התקנות לינוקס, אפילו הבסיסית ביותר, תהיה גישה לפחות זפת ו gunzip, לא משנה בן כמה או pared למטה. גם firmwares אנדרואיד יש גישה לכלים אלה.

    פרויקטים חדשים המכוונים לקהל הפצה מודרנית עשויים להפיץ בצורה מאוד מודרנית, כגון .tar.xz (באמצעות פורמט דחיסה XZ (LZMA), אשר דוחס יותר טוב gzip או bzip2), או .7z, אשר דומה את קובץ ה- Zip או Rar פורמטים של קבצים בכך שהוא דוחס ומציין פריסה עבור encapsulating קבצים מרובים לקובץ יחיד.

    אתה לא רואה .7z משמש לעתים קרובות יותר מאותה סיבה כי המוסיקה אינה נמכרת מחנויות להורדה באינטרנט בפורמטים חדשים כמו אופוס, או וידאו ב- WebM. תאימות עם אנשים רצים מערכות עתיקות או בסיסיות מאוד.


    יש לך משהו להוסיף להסבר? נשמע את ההערות. רוצה לקרוא תשובות נוספות ממשתמשים אחרים בעלי ידע טכנולוגי מתמצא? בדוק את נושא הדיון המלא כאן.