วิธีบันทึกผลลัพธ์ของคำสั่งไปยังไฟล์ใน Bash (หรือที่รู้จักว่า Linux และ macOS Terminal)
เมื่อคุณรันคำสั่งที่พร้อมต์ bash โดยปกติแล้วจะพิมพ์เอาต์พุตของคำสั่งนั้นไปยังเทอร์มินัลโดยตรงเพื่อให้คุณสามารถอ่านได้ทันที แต่ทุบตียังช่วยให้คุณสามารถ“ เปลี่ยนเส้นทาง” เอาท์พุทของคำสั่งใด ๆ บันทึกไว้ในไฟล์ข้อความเพื่อให้คุณสามารถตรวจสอบผลลัพธ์ในภายหลัง.
สิ่งนี้สามารถใช้งานได้กับระบบปฏิบัติการทุบตีจาก Linux และ macOS ไปจนถึงระบบปฏิบัติการทุบตีที่ใช้ Ubuntu บน Windows 10.
ตัวเลือกที่หนึ่ง: เปลี่ยนเส้นทางการส่งออกเป็นไฟล์เท่านั้น
ในการใช้การเปลี่ยนเส้นทาง bash คุณเรียกใช้คำสั่งระบุ >
หรือ >>
โอเปอเรเตอร์แล้วระบุเส้นทางของไฟล์ที่คุณต้องการให้เปลี่ยนเส้นทางไปที่เอาต์พุต.
-
>
เปลี่ยนทิศทางเอาต์พุตของคำสั่งไปยังไฟล์แทนที่เนื้อหาที่มีอยู่ของไฟล์. -
>>
เปลี่ยนทิศทางเอาต์พุตของคำสั่งไปยังไฟล์ต่อท้ายเอาต์พุตไปยังเนื้อหาที่มีอยู่ของไฟล์.
ในทางเทคนิคสิ่งนี้จะเปลี่ยนเส้นทาง“ stdout” - เอาต์พุตมาตรฐานซึ่งเป็นหน้าจอไปยังไฟล์.
นี่คือตัวอย่างง่ายๆ LS
คำสั่งรายการไฟล์และโฟลเดอร์ในไดเรกทอรีปัจจุบัน ดังนั้น. เมื่อคุณเรียกใช้คำสั่งต่อไปนี้, LS
จะแสดงรายการไฟล์และโฟลเดอร์ในไดเรกทอรีปัจจุบัน แต่จะไม่พิมพ์ลงบนหน้าจอ แต่จะบันทึกลงในไฟล์ที่คุณระบุ.
ls> / path / to / file
คุณไม่จำเป็นต้องระบุพา ธ ไปยังไฟล์ที่มีอยู่ ระบุพา ธ ที่ถูกต้องและ bash จะสร้างไฟล์ที่ตำแหน่งนั้น.
หากคุณดูเนื้อหาของไฟล์คุณจะเห็น LS
เอาต์พุตของคำสั่ง ตัวอย่างเช่น แมว
คำสั่งพิมพ์เนื้อหาของไฟล์ไปยังเทอร์มินัล:
cat / path / to / file
จำไว้ว่า
โอเปอเรเตอร์จะแทนที่เนื้อหาที่มีอยู่ของไฟล์ด้วยเอาต์พุตของคำสั่ง หากคุณต้องการบันทึกผลลัพธ์ของคำสั่งหลายคำในไฟล์เดียวคุณจะต้องใช้ >
ผู้ประกอบการแทน ตัวอย่างเช่นคำสั่งต่อไปนี้จะผนวกข้อมูลระบบเข้ากับไฟล์ที่คุณระบุ:>>
uname -a >> / path / to / file
หากไฟล์นั้นไม่มีอยู่ bash จะสร้างไฟล์ มิเช่นนั้น bash จะปล่อยเนื้อหาที่มีอยู่ของไฟล์ไว้ตามลำพังและผนวกเอาท์พุทต่อท้ายไฟล์.
เมื่อคุณดูเนื้อหาของไฟล์คุณจะเห็นผลลัพธ์ของคำสั่งที่สองของคุณถูกต่อท้ายไฟล์:
คุณสามารถทำขั้นตอนนี้ซ้ำหลาย ๆ ครั้งตามที่คุณต้องการเก็บเอาท์พุทต่อท้ายไฟล์.
ตัวเลือกที่สอง: พิมพ์งานปกติและเปลี่ยนเส้นทางไปยังไฟล์
คุณอาจไม่ชอบเปลี่ยนเส้นทางผลลัพธ์ด้วย >
หรือ >>
ตัวดำเนินการเนื่องจากคุณจะไม่เห็นผลลัพธ์ของคำสั่งในเทอร์มินัล นั่นคือสิ่งที่ ที
คำสั่งสำหรับ คำสั่ง tee พิมพ์อินพุตที่ได้รับไปที่หน้าจอ และ บันทึกลงในไฟล์ในเวลาเดียวกัน.
เพื่อไพพ์เอาต์พุตของคำสั่งให้ ที
, พิมพ์ไปที่หน้าจอของคุณและบันทึกลงในไฟล์ใช้ไวยากรณ์ต่อไปนี้:
คำสั่ง | ที / พา ธ / ไปยัง / ไฟล์
สิ่งนี้จะแทนที่สิ่งใด ๆ ในไฟล์ด้วยผลลัพธ์ของคำสั่งเช่นเดียวกับ >
ผู้ประกอบการ.
เพื่อไพพ์เอาต์พุตของคำสั่งให้ ที
, พิมพ์ไปที่หน้าจอของคุณและบันทึกลงในไฟล์ แต่ต่อท้ายไฟล์:
คำสั่ง | tee -a / path / to / file
สิ่งนี้จะผนวกเอาท์พุทต่อท้ายไฟล์เช่นเดียวกับ >>
ผู้ประกอบการ.
bash shell รวมถึงตัวดำเนินการขั้นสูงเพิ่มเติมบางอย่างที่ทำหน้าที่คล้ายกัน มันจะมีประโยชน์อย่างยิ่งหากคุณกำลังเขียนสคริปต์ทุบตี ศึกษาบท I / O Redirection ในคู่มือการใช้งาน Bash-Scripting ขั้นสูงสำหรับรายละเอียดเพิ่มเติม.