אפשרויות דחיסת קבצים של Linux והשוואה

Linux File Compression Options



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

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







סוגי דחיסה

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



ישנם 2 סוגים של דחיסה.



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

דחיסת לינוקס

רוב שיטות הדחיסה זמינות מהכלי זֶפֶת . באשר לדחיסת ה- zip, נשתמש ב- רוכסן כְּלִי. בהנחה שכלי זה כבר מותקן במערכת שלך, בוא נתחיל.





בהתחלה, אנו זקוקים לקובץ בדיקה. הפעל את הפקודה הבאה ליצירת אחת.

$base64/dev/urandom| רֹאשׁ 20000000 >file.txt



הוא ייצור קובץ טקסט בגודל 20MB.

כעת, ניצור 10 עותקים של הקובץ. יחד, זה 200 מגה.

רוכסן לדחיסה

זיפ הוא די נפוץ. ליצירת קובץ zip, הכלי zip דורש את מבנה הפקודה הבא.

$רוכסן <תְפוּקָה>.רוכסן<קֶלֶט>

כדי לדחוס את כל הקבצים מתחת לספריית הבדיקה בקובץ zip יחיד, הפעל פקודה זו.

$רוכסןtest.zip*

גודל הקלט היה 200 מגה -בתים. לאחר דחיסה, כעת הוא 152 מגה -בתים!

כברירת מחדל, כלי ה- zip יחיל את הדחיסה DEFLATE. עם זאת, הוא מסוגל גם להשתמש בדחיסת bzip2. לא רק זה, אתה יכול גם ליצור קבצי zip המוגנים באמצעות סיסמה! למידע נוסף על zip .

זפת לדחיסה ב- Linux

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

לטיפול בארכיון זפת (המכונה גם טארבול), יש את כלי הזפת. למידע נוסף על זפת. באופן כללי, כלי הזפת משתמש במבנה הפקודה הבא.

$זֶפֶת <אפשרויות> <קובץ פלט> <קֶלֶט>

כדי להוסיף את קבצי הבדיקה לארכיון זפת יחיד, הפעל את הפקודה הבאה.

$זֶפֶת -cvftest.tar*

כאן, גודל הקובץ נשאר זהה.

Gzip לדחיסה ב- Linux

GNU Zip או gzip היא שיטת דחיסה פופולרית נוספת שלדעתי טובה יותר מהזיפ המסורתי בגלל הדחיסה הטובה יותר שלה. זהו מוצר בעל קוד פתוח שנוצר על ידי מארק אדלר וז'אן-לופ גיילי שנועד במקור להחליף את יוניקס לִדחוֹס תוֹעֶלֶת.

לניהול ארכיון gzip, ישנם 2 כלים זמינים: זפת ו- gzip. בואו לבדוק את שניהם.

ראשית, הכלי gzip. כך נראה מבנה הפקודה gzip.

$gzip <אוֹפְּצִיָה> <קֶלֶט>

לדוגמה, הפקודה הבאה תחליף את test1.txt בקובץ דחוס test1.txt.gz.

$gzip -vtest1.txt

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

$gzip -r <folder_path>

Gzip תומך בערכים שונים של חוזק הדחיסה, החל מ -1 (הכי פחות דחיסה, המהירה ביותר) ועד 9 (הדחיסה הטובה ביותר, האיטית ביותר).

$gzip -v -9 <קוֹבֶץ>

לשליטה טובה יותר על הפלט וקלות השימוש, זפת טובה יותר למשימה. הפעל את הפקודה הבאה.

$זֶפֶת -cvzftest.tar.gz*

התוצאה דומה ל- zip באמצעות DEFLATE, וכתוצאה מכך 152 MB לאחר דחיסה.

Bzip2 לדחיסה ב- Linux

Bzip2 הוא כלי חופשי וקוד פתוח שמשתמש באלגוריתם Burrows-Wheeler לדחיסה. הוצג לראשונה בשנת 1996, bzip2 נמצא בשימוש רב כחלופה לדחיסת ה- gzip.

כמו gzip, ישנם 2 כלים לעבודה עם bzip2: זפת ו- bzip2.

הכלי bzip2 עובד בדומה לכלי gzip. זה יכול לעבוד רק עם קובץ אחד בכל פעם. להלן מבנה הפיקוד.

$bzip2 <אוֹפְּצִיָה> <קֶלֶט>

בואו נדחס את הקובץ test1.txt. כאן, הדגל -v מיועד למצב מילולי.

$bzip2 -vtest1.txt

בדומה ל- gzip, bzip2 תומך גם ברמת דחיסה שונה, החל מ -1 (ברירת מחדל, פחות שימוש בזיכרון) ועד 9 (דחיסה קיצונית, שימוש בזיכרון גבוה).

$bzip2 -v -9 <קוֹבֶץ>

הדרך הטובה יותר להשתמש בדחיסת bzip2 היא באמצעות זפת. השתמש בפקודה הבאה.

$זֶפֶת -cvjftest.tar.bz2*

הדחיסה משופרת מעט מהקודמות. כעת, גודל הקובץ הצטמצם ל- 151.7 MB.

XZ לדחיסה ב- Linux

זה חדש יחסית בתחום הדחיסה. הוא שוחרר לראשונה בשנת 2009, ומאז צמיחה מתמדת בשימוש.

כלי הדחיסה xz משתמש באלגוריתם LZMA2 הידוע ביחס דחיסה גדול יותר בהשוואה ל- gzip ו- bzip2, מה שהופך אותו לבחירה מצוינת כאשר אתה רוצה לחסוך את כמות הדיסק המרבית. עם זאת, הדבר כרוך בעלות של דרישות זיכרון גבוהות יותר וצריכת זמן.

לקובץ שנוצר על ידי כלי הדחיסה XZ יש את הסיומת .xz. לדחיסת קובץ יחיד, ניתן להתקשר ישירות לכלי XZ.

$xz<אוֹפְּצִיָה> <קוֹבֶץ>

לדוגמה, הפעל את הפקודה הבאה לדחיסת קובץ test1.txt.

$xz-vtest1.txt

בדומה לשיטות דחיסה אחרות שהוזכרו, xz תומך גם בטווחים שונים של חוזק הדחיסה, החל מ -1 (הדחיסה הנמוכה ביותר, המהירה ביותר) ועד 9 (הדחיסה הטובה ביותר, האיטית ביותר). אם אין לך התייחסות לזמן ורק רוצה לחסוך מקום, אז לך על הקיצוניות.

$xz-v -9 <קוֹבֶץ>

כדי ליצור קובץ XZ דחוס מכל קבצי הבדיקה, הפעל פקודה זו.

$זֶפֶת -cvJftest.tar.xz*

כאן, גודל קובץ הפלט הוא 153.7 MB.

חילוץ ארכיונים דחוסים

לחלץ את הארכיונים שיצרנו קל יותר מאשר ליצור אותם. כדי לחלץ קובץ zip, השתמש במבנה הפקודה הבא.

$לִפְתוֹחַ <שם קובץ>.רוכסן-d <יַעַד>

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

$לִפְתוֹחַtest.zip

לחילוץ ארכיון tar, tar.gz, tar.bz2 ו- tar.xz, עלינו להשתמש ב- זֶפֶת כְּלִי. פקודת tar הבאה רלוונטית לחילוץ כולם.

$זֶפֶת -xvf <שם ארכיון>

לדוגמה, בואו נחלץ את כל הקבצים מהארכיון הדחוס של bz2.

$זֶפֶת -xvftest.tar.bz2

כדי לפרק קובץ gzip (לא tar.gz), הפעל פקודה זו.

$gzip -d <gzip_file>

באופן דומה, הפקודה הבאה תוריד את דחיסת ארכיון bzip2.

$bzip2 -d <bzip2_file>

אותו מבנה פקודה חל על ארכיון xz.

$xz-d <xz_file>

מחשבות אחרונות

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

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

כדי ללמוד יותר לעומק על כלים אלה, עיין בדף האישים המתאים שלהם.

$איש רוכסן