כיצד zip או לפתוח קבצים ממסוף לינוקס

קבצי ZIP הם ארכיון אוניברסלי הנפוץ במערכות Windows, macOS ואפילו לינוקס. אתה יכול ליצור ארכיון zip או לפתוח קבצים מאחד עם כמה פקודות מסוף לינוקס נפוצות.

פורמט קובץ ארכיון דחוס ZIP

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

בעוד שקבצי .tar.gz ו- tar.bz2 נפוצים ב- Linux, משתמשי Windows כנראה ישלחו לך ארכיון בפורמט ZIP. ואם אתה רוצה לאחסן קבצים מסוימים ולשלוח אותם למשתמש Windows, פורמט ה- ZIP יהיה הפיתרון הקל ביותר והתואם ביותר לכולם.

קשורים: כיצד לחלץ קבצים מקובץ .tar.gz או .tar.bz2 ב- Linux

zip, unzip, וכלים אחרים

ייתכן שכבר ידוע כי למערכות הפעלה של לינוקס ומערכות הפעלה כמו יוניקס יש כלים המאפשרים לך ליצור קבצי ZIP ולחלץ מהם קבצים, הנקראים zipו- unzip. אבל יש משפחה שלמה של שירותים נלווים כגון zipcloak, zipdetails, zipsplit, ו zipinfo.

בדקנו כמה הפצות לינוקס כדי לראות אם הן כוללות כלי עזר אלה בהתקנה הסטנדרטית. כל כלי השירות היו קיימים באובונטו 19.04, 18.10 ו- 18.04. הם נכחו גם במנג'רו 18.04. פדורה 29 כלל zipו unzip, אבל אף אחד מהשירותים הציבוריים האחרים וכי גם היה במקרה של CentOS.

כדי להתקין את האלמנטים החסרים ב- Fedora 29, השתמש בפקודה הבאה:

sudo dnf להתקין את perl-IO-Compress

כדי להתקין את האלמנטים החסרים ב- CentOS 7, השתמש בפקודה הבאה:

sudo yum להתקין perl-IO-Compress

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

כיצד ליצור קובץ ZIP עם פקודת zip

כדי ליצור קובץ ZIP, עליך לספר zipאת שם קובץ הארכיון ואילו קבצים לכלול בו. אינך צריך להוסיף את הסיומת ".zip" לשם הארכיון, אך אם לא תזיק.

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

קוד מקור מיקוד * .c * .h

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

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

ls -l source_code.zip

אם אינך מעוניין לראות את הפלט ממנו zipנוצר קובץ ה- ZIP, השתמש באפשרות -q(שקטה).

zip -q source_code * .c * .h

כולל ספריות בקבצי ZIP

כדי לכלול ספריות משנה בקובץ ה- ZIP, השתמש באפשרות -r(רקורסיבית) וכלל את שם ספריה המשנה בשורת הפקודה. כדי ליצור קובץ ZIP כבעבר ולכלול את ספריה המשנה לארכיון, השתמש בפקודה זו.

zip -r -q ארכיון קוד קוד / * .c * .h

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

בפקודה הבאה אנו הולכים לארכיב את workהספריה ואת כל ספריות המשנה. שים לב שפקודה זו מונפקת מספריית האב של workהתיקיה.

zip -r -q source_code work /

הגדרת רמת הדחיסה

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

כדי zipלהשתמש ברמת דחיסה מסוימת, העבר את המספר כאופציה בשורת הפקודה, עם "-", כך:

zip -0 -r -q source_code work /

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

zip -r -q source_code work /

רמת הדחיסה המקסימלית היא רמה 9.

zip -9 -r -q source_code work /

עם בחירת הקבצים והספריות בארכיון כאן, ההבדל בין אין דחיסה (רמה 0) לדחיסת ברירת המחדל (רמה 6) הוא 400K. ההבדל בין דחיסת ברירת המחדל לרמת הדחיסה הגבוהה ביותר (רמה 9) הוא 4K בלבד.

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

הוספת סיסמאות לקבצי ZIP

הוספת סיסמאות לקבצי ZIP היא קלה. השתמש באפשרות -e(הצפן) ותתבקש להזין את הסיסמה שלך ולהזין אותה מחדש לאימות.

zip -e -r -q source_code work /

כיצד לפתוח קובץ ZIP באמצעות פקודת ה- zip

כדי לחלץ את הקבצים מקובץ ZIP, השתמש בפקודה unzip וספק את שם קובץ ה- ZIP. שים לב שאתה עושה הצורך לספק את הסיומת ".zip".

unzip source_code.zip

עם חילוץ הקבצים הם מופיעים בחלון המסוף.

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

בדיוק כמו zip, unzip יש אפשרות -q(שקטה), כך שלא תצטרכו לראות את רישום הקבצים עם חילוץ הקבצים.

unzip -q source_code.zip

חילוץ קבצים לספריית יעד

כדי לחלץ את הקבצים בספרייה ספציפית, השתמש באפשרות -d(ספריה) וספק את הנתיב לספריה שאליה תרצה לחלץ את הארכיון.

unzip -q source_code.zip -d ./development

חלץ קבצי ZIP מוגנים באמצעות סיסמה

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

unzip -q source_code.zip

אם לא אכפת לך שהסיסמה שלך תוצג על ידי אחרים - וגם לא שתשמור אותה בהיסטוריית הפקודות שלך - תוכל לספק את הסיסמה בשורת הפקודה עם האפשרות -P(סיסמה). (עליך להשתמש באותיות רישיות "P.")

unzip -P fifty.treacle.cutlass -q source_code.zip

לא כולל קבצים

אם אינך רוצה לחלץ קובץ או קבוצת קבצים מסוימים, השתמש באפשרות -x(אל תכלול). בדוגמה זו, אנו רוצים לחלץ את כל הקבצים מלבד אלה שמסתיימים בסיומת ".h".

unzip -q source_code.zip -x * .h

החלפת קבצים

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

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

מלבד rהתגובה (שנה שם), התגובות הללו תלויות רישיות.

  • y: כן, החלף את הקובץ הזה
  • n: לא, אל תחליף את הקובץ הזה
  • ת: הכל, החלף את כל הקבצים
  • N: אף אחד, לא להחליף אף אחד מהקבצים
  • r: שנה שם, חלץ את הקובץ הזה אבל תן לו שם חדש. תתבקש להזין שם חדש.

כדי לאלץ unzipלהחליף קבצים קיימים השתמש באפשרות -o(להחליף).

unzip -o -q source_code.zip

הדרך היעילה ביותר להחליף את הקבצים החסרים תהיה unzipלחלץ רק קבצים בארכיון שאינם בספריית היעד. לשם כך השתמש באפשרות -n(לעולם אל תחליף).

unzip -n source_code.zip

מסתכל בתוך קובץ ZIP

לעתים קרובות מועיל ומלמד לראות רשימה של קבצים בתוך קובץ ZIP לפני שתחלץ אותה. אתה יכול לעשות זאת באמצעות האפשרות -l(ארכיון רשימה). זה מנוהל דרך lessכדי להפוך את הפלט לניהול.

unzip -l source_code.zip | פָּחוּת

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

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

הוסף סיסמה באמצעות פקודת zipcloak

אם יצרת קובץ ZIP אך שכחת להוסיף סיסמה, מה אתה יכול לעשות? באפשרותך להוסיף סיסמה במהירות לקובץ ZIP באמצעות zipcloakהפקודה. העבירו את שם קובץ ה- ZIP בשורת הפקודה. תתבקש להזין סיסמה. עליך לאמת את הסיסמה על ידי הזנתה בפעם השנייה.

zipcloak source_code.zip

הצג פרטי קובץ באמצעות פקודת zipdetails

zipdetailsפקוד תיראה לך הרבה מידע לגבי קובץ ZIP. הדרך ההגיונית היחידה לטפל בכמות התפוקה שפקודה זו יכולה לתת היא לצינור אותה less.

zipdetails source_code.zip | פָּחוּת

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

חפש בתוך הקובץ באמצעות הפקודה zipgrep

zipgrepהפקודה מאפשרת לך לחפש בתוך קבצים בתוך קובץ ZIP. בדוגמה הבאה, אנו רוצים לדעת אילו קבצים בתוך קובץ ה- ZIP מכילים את הטקסט "keyval.h".

zipgrep keyval.h source_code.zip

אנו יכולים לראות כי קבצים slang.cו getval.cלהכיל את המחרוזת "keyval.h" אנו יכולים גם לראות כי ישנם שני עותקים של כל אחד מהקבצים האלו ספריות שונות בקובץ ZIP.

צפה במידע באמצעות פקודת zipinfo

zipinfoהפקודה נותן לך עוד דרך להסתכל בתוך קובץ ZIP. כמו בעבר, אנו מצנרים את התפוקה less.

zipinfo source_code.zip | פָּחוּת

משמאל לימין הפלט מראה:

  • הרשאות הקובץ
  • גרסת הכלי המשמשת ליצירת קובץ ה- ZIP
  • גודל הקובץ המקורי
  • מתאר קבצים (מתואר להלן)
  • שיטת הדחיסה (דפלציה, במקרה זה)
  • הנתונים וחותמת הזמן
  • שם הקובץ וכל ספריה

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

  • -: אם אף אחד מהם לא קיים, הדמות תהיה מקף
  • l: אם יש כותרת מקומית מורחבת אך אין שדה נוסף
  • x: אם אין כותרת מקומית מורחבת אך יש שדה נוסף
  • X: אם יש כותרת מקומית מורחבת ויש שדה נוסף

פצל את הקובץ באמצעות הפקודה zipsplit

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

האפשרות -n(גודל) מאפשרת לך להגדיר גודל מרבי לכל אחד מקבצי ה- ZIP החדשים. בדוגמה זו אנו מפצלים את source_code.zipהקובץ. איננו רוצים שאף אחד מקבצי ה- ZIP החדשים יהיה גדול מ- 100 KB (102400 בתים).

zipsplit -n 102400 source_code.zip

הגודל שתבחר לא יכול להיות קטן מגודל הקבצים בקובץ ה- ZIP.

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