logo

Bash כתוב לקובץ

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

שיטה 1: כתוב פלט לקובץ בלבד

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

סימן סוגר זווית ישרה (>)

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

סימן זווית ישרה כפולה (>>)

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

מבחינה טכנית, שני האופרטורים הללו מפנים את 'stdout (הפלט הסטנדרטי)' לקובץ.

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

דוגמא

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

Bash Script

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Checking the content of the file gedit output_file.txt 

תְפוּקָה

Bash Write File

כפי שמוצג כאן, הפלט של הפקודה 'ls' מנותב מחדש לקובץ. כדי להדפיס את תוכן הקובץ למסוף, נוכל להשתמש בפקודה 'חתול' בצורה הבאה:

Bash Script

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Printing the content of the file cat $output 

תְפוּקָה

Bash Write File

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

Bash Script

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Appending the system information uname -a >> $output #Checking the content of the file gedit output_file.txt 

תְפוּקָה

Bash Write File

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

סוג משתנים java

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

שיטה 2: הדפס פלט כרגיל וכתוב אותו לקובץ

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

Bash Script

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls | tee $output 

תְפוּקָה

Bash Write File

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

אם נרצה לכתוב את הפלט לקובץ מבלי להסיר את תוכן הקובץ באמצעות פקודת tee, נוכל להשתמש בטופס הבא שגם ידפיס את הפלט למסוף:

Bash Script

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt echo '<<>>' | tee -a $output #Write data to a file ls | tee $output echo | tee -a $output #Append System Information to the file echo '<<>>' | tee -a $output uname | tee -a $output 

תְפוּקָה

Bash Write File

זה לא רק יוסיף את הפלט לסוף הקובץ אלא גם ידפיס את הפלט על המסך.