ฉันเห็นคำสั่ง cat ปรากฏขึ้นในบางสิ่งออนไลน์และฉันอยากรู้ว่าสิ่งใดที่cat
ทำและสิ่งนั้นมีไว้เพื่ออะไรในบริบทของคนที่เพิ่งทำสิ่งบรรทัดคำสั่งง่ายๆ
ฉันเห็นคำสั่ง cat ปรากฏขึ้นในบางสิ่งออนไลน์และฉันอยากรู้ว่าสิ่งใดที่cat
ทำและสิ่งนั้นมีไว้เพื่ออะไรในบริบทของคนที่เพิ่งทำสิ่งบรรทัดคำสั่งง่ายๆ
คำตอบ:
cat
วัตถุประสงค์หลักของคือการต่อต้านไฟล์แมว enate cat file1 file2 ...
จะแสดงเนื้อหาของfile
, file2
และคนอื่น ๆ หนึ่งหลังจากที่อื่นเช่นถ้าเนื้อหาอยู่ในไฟล์เดียว ดูmanpage :
NAME
cat - concatenate and print files
มันมีไว้สำหรับการใช้งานที่:
คำสั่งเป้าหมายไม่สามารถอ่านจากไฟล์และคุณต้องส่งไฟล์หลายไฟล์ ตัวอย่างคือtr
ยูทิลิตี้ โดยปกติด้วยไฟล์เดียวคุณจะทำ:
tr < file
แต่ด้วยหลายไฟล์การเปลี่ยนเส้นทางไม่สามารถใช้งานได้ดังนั้นคุณต้องทำดังนี้
cat file1 file2 ... | tr
wc
ซึ่งพิมพ์จำนวนสำหรับแต่ละไฟล์พร้อมกับชื่อไฟล์ที่คุณอาจต้องการเพียงแค่จำนวนรวมโดยไม่มีชื่อไฟล์โปรดจำไว้ว่าคำสั่งส่วนใหญ่ที่คุณพบ ( grep
, sed
, awk
, sort
, ... ) สามารถอ่านไฟล์สมบูรณ์ดี
หากคุณต้องการดูเนื้อหาของไฟล์ให้ใช้เพจเจอร์ - less
และmore
ทั้งสองมีความสามารถอย่างชัดเจนในการนำเสนอไฟล์สำหรับการดูและสะดวกในการใช้
cat
เป็นหนึ่งในคำสั่งที่ใช้บ่อยที่สุดในระบบปฏิบัติการยูนิกซ์ มันมีสามหน้าที่ที่เกี่ยวข้องกับไฟล์ข้อความ:
ไวยากรณ์ทั่วไปของ cat คือ:
cat [options] [filenames] [-] [filenames]
การใช้งานทั่วไปของแมวคือการอ่านเนื้อหาของไฟล์และแมวมักจะเป็นโปรแกรมที่สะดวกที่สุดสำหรับวัตถุประสงค์นี้ สิ่งที่จำเป็นในการเปิดไฟล์ข้อความสำหรับดูบนหน้าจอแสดงผลคือการพิมพ์คำว่า cat ตามด้วยช่องว่างและชื่อของไฟล์จากนั้นกดปุ่ม ENTER ตัวอย่างเช่นต่อไปนี้จะแสดงเนื้อหาของไฟล์ชื่อ file1:
cat file1
บทบาทที่สองของแมวคือการต่อกัน (นี่คือที่มาของชื่ออยากรู้อยากเห็นของแมว) ไม่มีผลกับไฟล์ต้นฉบับ
ตัวอย่างเช่นคำสั่งต่อไปนี้จะเชื่อมต่อสำเนาของเนื้อหาของสามไฟล์ file1, file2 และ file3:
cat file1 file2 file3
เนื้อหาของแต่ละไฟล์จะปรากฏบนหน้าจอมอนิเตอร์ เอาต์พุตนี้สามารถเปลี่ยนทิศทางได้อย่างง่ายดายโดยใช้โอเปอเรเตอร์การเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์อื่นเช่น file4 โดยใช้สิ่งต่อไปนี้:
cat file1 file2 file3 > file4
ขอบคุณที่@muruความคิดเห็น: cat สามารถสร้างไฟล์ใหม่ได้ขึ้นอยู่กับคุณสมบัติการเปลี่ยนเส้นทางของเชลล์ไม่ใช่ตัวของมันเอง
สำหรับไฟล์ขนาดเล็กมักจะง่ายกว่าการใช้ vi, gedit หรือโปรแกรมแก้ไขข้อความอื่น ๆ สามารถทำได้โดยพิมพ์ cat ตามด้วยตัวดำเนินการเปลี่ยนเส้นทางเอาต์พุตและชื่อของไฟล์ที่จะสร้างจากนั้นกดENTERและในที่สุดก็กดCtrl& & พร้อมกันdปุ่ม
ตัวอย่างเช่นไฟล์ใหม่ชื่อ file1 สามารถสร้างได้โดยการพิมพ์
cat > file1
แล้วกดENTERและพร้อมกดCtrlและdปุ่ม
PS1: หากไฟล์ชื่อ file1 มีอยู่แล้วมันจะถูกเขียนทับ
PS2: คุณสามารถต่อท้ายเพื่อออกจากไฟล์โดยใช้>>
ตัวอย่างตัวดำเนินการผนวกcat >> file1
คำสั่ง cat ยังสามารถใช้ได้ ( ขึ้นอยู่กับคุณสมบัติการเปลี่ยนเส้นทางของเชลล์) เพื่อสร้างไฟล์ใหม่และถ่ายโอนข้อมูลจากไฟล์ที่มีอยู่ ตัวอย่าง: ทำสำเนาไฟล์oldfile.txt
:
cat oldfile.txt > newfile.txt
อ้างอิง:
cat
ไม่ได้สร้างไฟล์เหล่านั้น - เชลล์คือเมื่อคุณใช้การเปลี่ยนเส้นทาง echo foo > file1
คุณอาจทำได้เช่นกัน
cat
สิ่งที่กำลังทำจริงโดยอย่างอื่น ตัวอย่างเช่นการทำless file1 > file2
(หรือgrep '.*' file1 > file
หรือawk 1 file1 > file2
หรือ ... ) มีผลเหมือนกัน เหมือนกันสำหรับ 4 สิ่งเหล่านี้เป็นเพียงการใช้ในทางที่ผิด
> file
และให้ผลเหมือนกัน แต่ฉันไม่คิดว่ามันถูกต้องหรือไม่ที่จะทำกับแมว!
cat
ว่าไม่ได้สร้างไฟล์ การบอกว่าcat
สร้างหรือคัดลอกไฟล์เป็นเท็จเพียงธรรมดา
มันสามารถใช้เพื่อแสดงเนื้อหาของไฟล์ cat "my file.txt"
เช่น: คุณยังสามารถทำman cat
เพื่อแสดงรายละเอียดเกี่ยวกับสิ่งที่cat
สามารถนำมาใช้สำหรับ
นี่เป็นอีกวิธีในการสร้างไฟล์โดยใช้การเปลี่ยนเส้นทางเชลล์ (หรือไพพ์) และcat
:
cat << EOF > foo.sh
#!/bin/sh
echo 'Hello World!'
EOF
cat << EOF
จะส่งออกบรรทัดต่อไปนี้จนกว่าEOF
จะพบสตริงอีกครั้ง จากนั้น>
( >>
) foo.sh
จะเปลี่ยนเส้นทางการส่งออกไปยังแฟ้ม อีกทางเลือกหนึ่งถ้าคุณต้องการสร้างไฟล์เป็นรูทคุณสามารถไพพ์เอาต์พุตไปยังคำสั่งtee
( tee -a
) ซึ่งดำเนินการโดยคำสั่งsudo
:
cat << EOF | sudo tee foo.sh && sudo chmod +x foo.sh
#!/bin/sh
HELLO='Hello World!'
echo "\$HELLO"
EOF
chmod +x
) หากสร้างสำเร็จ ( &&
)$
) ควรจะหนี (มี\
) cat
ภายในการส่งออกของ
< <(cat file[12]) tr
รวมถึง<<<$(cat file[12]) tr
วิธีที่ถูกต้องสมบูรณ์ในการเปลี่ยนเส้นทางไฟล์หลายไฟล์ แน่นอนว่าคุณต้องการcat
สิ่งนั้นเช่นกันเพียงแค่การต่อท่อไม่ใช่วิธีเดียว