כיצד לשמור את הפלט של פקודה לקובץ ב - Linux
על מערכות לינוקס יש לא מעט דרכים לשמור את הפלט שורת פקודה לקבצים. כל אחד פועל אחרת וחוסך דברים שונים.
פקודות אלה שימושיים בכל הפצות לינוקס והוא יכול לשמש גם על Macs ו BSD. הדבר היחיד שאתה צריך לחשוב על איזו פקודה היא הטובה ביותר לעשות את העבודה.
יוניקס ו פייפס
לפני שאתה לצלול לתוך הפקודות, אתה צריך לדעת קצת היסטוריה. אף אחד מאלה אינו ספציפי ל- Linux. זה בעצם מגיע ממערכת ההפעלה הישנה של יוניקס שפותחה על ידי בל מעבדות. Linux, Mac ו- BSD הן כל מערכות ההפעלה של יוניקס, אשר יכולות לעקוב אחר עץ המשפחה שלהן ל- Unix.
אחד הרעיונות המרכזיים מאחורי יוניקס היה לעשות הכל מתוך תוכניות קטנות שאתה יכול מחרוזת יחד לעשות דברים גדולים יותר מורכבים. לכן אתה יכול לשלב פקודות לינוקס כדי לגרום להם לעבוד יחד.
ישנן כמה דרכים למשוך יחד לינוקס (ו- Unix) פקודות ולגרום להם לעבוד יחד. הנפוץ ביותר שתיתקל בו הוא |
אופי. הפיפ היחיד, כפי שהוא נקרא, מעביר את הפלט של פקודה אחת לאחרת.
תוכלו גם לבוא על פני המפעיל |&
. זה עובר גם פלט שגיאות לפקודה הבאה.
כל שיטה במדריך זה היא למעשה רק דרך פקודות יוניקס להעביר מידע מסביב. במקום לצנזר נתונים בין פקודות, הם מפנים נתונים לפלט. במקרה זה, פלט זה הוא קובץ.
להכין
לפני שאתה הולך כל עוד, יש כמה דברים כדי להגדיר כדי להקל על הבדיקה. כמשתמש הבסיס שלך, צור כמה תיקיות בספריית הבית הרגילה של המשתמש. שנה את ההרשאות שלהם כדי להפוך אותם לבלתי קריאים.
sudo mkdir Fail1 sudo mkdir Fail2 sudo chmod 000 Fail1 sudo chmod 000 Fail2
אתה תשתמש בפקודה du
כדי לבדוק, וזה יעורר שגיאות כאשר הוא נתקל באותם קבצים.
הפניה מחדש של פלט ללא שגיאות
הדרך הנפוצה ביותר והבסיסית להפניה מחדש של הפלט מהמסוף לקובץ היא להשתמש במפעילים >
ו- >>
. הם מכוונים רק את הפלט לקובץ טקסט מסוים. הם אינם מנתבים שגיאות. אלה עדיין יופיעו בטרמינל.
מפעיל את הפלט מחדש לקובץ ומחליף את תוכן הקובץ.
du -h ./*> folder-size.txt
לעומת זאת, האופרטור >>
פועל באופן דומה, אך מוסיף את הפלט לסוף הקובץ.
du -h ./* >> folder-size.txt
שמירת טעויות בלבד
שני המפעילים הבאים הם ההפך הגמור מהראשונים. הם שומרים רק שגיאות, בעוד שהם מציגים את הפלט במסוף.
שימוש במפעיל 2>
שולח את השגיאות מפקודה לקובץ יומן, מחליף אותה. התפוקה הרגילה עדיין תוצג במסוף.
du -h ./* 2> errors.log
כדי להשיג את אותן תוצאות מבלי להחליף, השתמש 2>>
.
du -h ./* 2 >> errors.log
שמור הכל, לא הראה כלום
אם אתה מעוניין להיכנס כל דבר, הבא קבוצה של אופרטורים יש לך מכוסה. הם מפנים מחדש את כל הפלט לקבצים מבלי להציג דבר במסוף.
האופרטור &>
מפנה מחדש פלט ושגיאות לקובץ ומחליף אותו.
du -h ./** &> disk_use.log
כמו האחרים, אם אתה לא רוצה להחליף, יש מפעיל המלווה את זה.
du -h ./* & >> disk_use.log
הצג הכל, שמור פלט
ניתן גם להציג הכל במסוף ורק להיכנס הפלט. אתה יכול להשיג זאת על ידי ציוץ הפקודה שלך הפקודה tee
.
tee
מעשים כמו מפצל T ב אינסטלציה. הוא מכוון את הזרימה לשני כיוונים. מאז מפעיל רק עובר פלט, את הקובץ שנוצר גם רק מכילים פלט ולא שגיאות.
du -h ./** tee output.txt
כברירת מחדל, tee
מחליפה. כדי לשמור את הקובץ הקיים, הוסף את הדגל.
du -h ./** tee -a output.txt
הצג ושמור הכל
לבסוף, ניתן להפנות מחדש עם האופרטור |&
אל הפקודה tee
כדי להציג הכל ולהיכנס אליו מדי.
du -h ./** | & tee output.txt
כדי להימנע מחליפה, הוסף את הדגל ל- tee
.
du -h ./* | & tee -a output.txt
לעטוף
ברור, יש המון אפשרויות כשמדובר הפניה ושמירה של הפלט של פקודות מסוף לינוקס לקובץ. חלק מהם שימושיים יותר מאחרים, אבל הם יכולים להיות מועסקים במגוון רחב של סקריפטים כדי לשלוט על זרימת המידע בצורה יוניקס ביותר האפשרי.