โฮมเพจ » ทำอย่างไร » วิธีบันทึกผลลัพธ์ของคำสั่งไปยังไฟล์ใน Bash (หรือที่รู้จักว่า Linux และ macOS Terminal)

    วิธีบันทึกผลลัพธ์ของคำสั่งไปยังไฟล์ใน 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 ขั้นสูงสำหรับรายละเอียดเพิ่มเติม.