เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

การเปลี่ยนเส้นทางเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยังไฟล์เดียว

มีหลายกรณีที่เราอาจต้องการจับภาพผลลัพธ์ทั้งหมดของคำสั่งเป็นไฟล์เดียว ในการดำเนินการนี้ เราต้องเปลี่ยนเส้นทางทั้งเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานพร้อมกัน มีสองวิธีในการทำเช่นนี้ อย่างแรก วิธีดั้งเดิมซึ่งใช้งานได้กับเวอร์ชันเก่าของเชลล์:



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

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


เมื่อใช้วิธีนี้ เราทำการเปลี่ยนเส้นทางสองครั้ง ก่อนอื่นเราเปลี่ยนเส้นทางเอาต์พุตมาตรฐานไปยังไฟล์ ls-output.txt จากนั้นเราเปลี่ยนเส้นทาง file descriptor 2 (ข้อผิดพลาดมาตรฐาน) ไปยัง file descriptor one (เอาต์พุตมาตรฐาน) โดยใช้สัญกรณ์ 2> & 1.


ภาพ

ขอให้สังเกตว่าลำดับของการเปลี่ยนเส้นทางมีความสำคัญ การเปลี่ยนเส้นทางของข้อผิดพลาดมาตรฐานต้องเกิดขึ้นเสมอ หลังจาก เปลี่ยนเส้นทางเอาต์พุตมาตรฐานหรือไม่ทำงาน ในตัวอย่างข้างต้น


>ls-output.txt 2>&1


เปลี่ยนเส้นทางข้อผิดพลาดมาตรฐานไปยังไฟล์ ls-output.txtแต่หากเปลี่ยนลำดับเป็น


2>&1 >ls-output.txt


ข้อผิดพลาดมาตรฐานถูกส่งไปยังหน้าจอ


ภาพ

เวอร์ชันล่าสุดของ ทุบตี ให้วิธีที่สองที่คล่องตัวมากขึ้นในการดำเนินการนี้

ข้อผิดพลาดมาตรฐานการเปลี่ยนเส้นทาง


การเปลี่ยนเส้นทางแบบรวม:



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

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


ในตัวอย่างนี้ เราใช้สัญกรณ์เดียว &> เพื่อเปลี่ยนเส้นทางทั้งเอาต์พุตมาตรฐานและข้อผิดพลาดมาตรฐานไปยังไฟล์ ls-output.txt. คุณยังสามารถผนวกเอาต์พุตมาตรฐานและสตรีมข้อผิดพลาดมาตรฐานเข้ากับไฟล์เดียวได้ดังนี้:



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

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


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: