OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

הפניית פלט סטנדרטי

ניתוב מחדש של I/O מאפשר לנו להגדיר מחדש לאן מגיע הפלט הסטנדרטי. כדי להפנות פלט סטנדרטי לקובץ אחר במקום למסך, אנו משתמשים באופרטור ההפניה ">" ואחריו שם הקובץ. למה שנרצה לעשות את זה? לעתים קרובות שימושי לאחסן את הפלט של פקודה בקובץ. לדוגמה, נוכל לומר למעטפת לשלוח את הפלט של ה- ls פקודה לקובץ ls-output.txt במקום המסך:


[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt

[me@linuxbox ~]$ ls -l /usr/bin > ls-output.txt


כאן, יצרנו רשימה ארוכה של / usr / bin ספריה ושלח את התוצאות לקובץ

ls-output.txt. הבה נבחן את הפלט המופנה מחדש של הפקודה:


[me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 167878 2016-02-01 15:07 ls-output.txt

[me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 167878 2016-02-01 15:07 ls-output.txt


טוֹב; קובץ טקסט נחמד וגדול. אם נסתכל על הקובץ עם פחות, נראה שהקובץ

ls-output.txt אכן מכיל את התוצאות מפקודת ls שלנו:


[me@linuxbox ~]$ פחות ls-output.txt

[me@linuxbox ~]$ פחות ls-output.txt


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



[me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt

ls: אין גישה ל-/bin/usr: אין קובץ או ספרייה כאלה

[me@linuxbox ~]$ ls -l /bin/usr > ls-output.txt

ls: אין גישה ל-/bin/usr: אין קובץ או ספרייה כאלה


קיבלנו הודעת שגיאה. זה הגיוני מכיוון שציינו את המדריך הלא קיים /bin/usr, אבל מדוע הודעת השגיאה הוצגה על המסך במקום הופנתה לקובץ ls-output.txt? התשובה היא ש- ls התוכנית לא שולחת את הודעות השגיאה שלה לפלט סטנדרטי. במקום זאת, כמו רוב תוכניות ה-Unix הכתובות היטב, הוא שולח את הודעות השגיאה שלו לשגיאה סטנדרטית. מכיוון שהפנינו רק פלט סטנדרטי ולא שגיאה סטנדרטית, הודעת השגיאה עדיין נשלחה למסך. נראה איך

הפניית פלט סטנדרטי


כדי להפנות מחדש שגיאה סטנדרטית תוך דקה בלבד, אבל ראשית, בואו נסתכל על מה קרה לקובץ הפלט שלנו:



[me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 0 2016-02-01 15:08 ls-output.txt

[me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 0 2016-02-01 15:08 ls-output.txt


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



[me@linuxbox ~]$ > ls-output.txt

[me@linuxbox ~]$ > ls-output.txt


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

אז איך נוכל לצרף פלט מנותב לקובץ במקום לדרוס את הקובץ מההתחלה? לשם כך, אנו משתמשים באופרטור ההפניה מחדש ">>", כך:



[me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt

[me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt


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



[me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 503634 2016-02-01 15:45 ls-output.txt

[me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l /usr/bin >> ls-output.txt [me@linuxbox ~]$ ls -l ls-output.txt

-rw-rw-r-- 1 me me 503634 2016-02-01 15:45 ls-output.txt


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


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: