ฉันต้องการอ่านไฟล์ทั้งหมดและทำให้รอการป้อนข้อมูลเหมือนtail -f
แต่แสดงไฟล์ที่สมบูรณ์
ความยาวของไฟล์นี้จะเปลี่ยนแปลงเสมอเนื่องจากเป็น.log
ไฟล์
ฉันจะทำอย่างไรถ้าฉันไม่ทราบความยาวของไฟล์
less
มีคีย์ "F" มีประโยชน์ถ้าคุณต้องการการโต้ตอบ
ฉันต้องการอ่านไฟล์ทั้งหมดและทำให้รอการป้อนข้อมูลเหมือนtail -f
แต่แสดงไฟล์ที่สมบูรณ์
ความยาวของไฟล์นี้จะเปลี่ยนแปลงเสมอเนื่องจากเป็น.log
ไฟล์
ฉันจะทำอย่างไรถ้าฉันไม่ทราบความยาวของไฟล์
less
มีคีย์ "F" มีประโยชน์ถ้าคุณต้องการการโต้ตอบ
คำตอบ:
tail
ช่วยให้คุณเพิ่มเพื่อระบุจำนวนของเส้นที่จะแสดงผลจากปลายซึ่งสามารถใช้ร่วมกับ-n
-f
หากอาร์กิวเมนต์สำหรับการ-n
เริ่มต้นด้วย+
นั่นคือการนับบรรทัดจากจุดเริ่มต้น ( 0
และการ1
แสดงไฟล์ทั้งหมด2
ระบุข้ามบรรทัดแรกตามที่ระบุโดย @Ben) ดังนั้นเพียงทำ:
tail -f -n +0 filename
ถ้าล็อกไฟล์ของคุณได้รับการหมุนคุณสามารถเพิ่ม--retry
(หรือรวม-f and --retry
เข้า-F
เป็น @Hagen แนะนำ)
นอกจากนี้ยังทราบว่าในขั้วกราฟิกคุณสามารถใช้เมาส์และPageUp/ PageDownเพื่อเลื่อนกลับเข้ามาในประวัติศาสตร์ (สมมติว่าบัฟเฟอร์ของคุณก็พอขนาดใหญ่) ข้อมูลนี้มีการเข้าพักแม้ว่าคุณจะใช้Ctrl+ เพื่อออกC tail
ถ้าคุณใช้less
นี้อยู่ไกลที่สะดวกสบายและ AFAIK น้อยกว่าที่คุณจะต้องใช้แป้นพิมพ์สำหรับการเลื่อนและผมไม่ทราบวิธีการที่จะทำให้less
จาก deinitialising termcap -X
หากคุณลืมที่จะเริ่มต้นด้วย
+
) จะดำเนินการได้อย่างมีประสิทธิภาพมากขึ้น
+1
+0
สำหรับการเรียนการสอนเกี่ยวกับฉัน คุณอาจต้องการ-F
แทนที่จะ-f
ใช้ logfiles แบบหมุน
tail -n +1
แสดงจุดเริ่มต้นของไฟล์ให้ฉันและtail -n +2
ข้ามหนึ่งบรรทัด ฉันคิดว่าหมายเลขนั้นเป็นหมายเลขบรรทัดของบรรทัดแรกที่แสดง
มีวิธีที่ดีกว่าในการบรรลุเป้าหมายนี้:
less +F <file>
มันจะแสดงไฟล์ทั้งหมดให้คุณมีพลังเต็มที่less
และจะรออินพุตใหม่ หากคุณต้องการหยุดรออินพุตและอ่านชิ้นส่วนเฉพาะคุณสามารถหยุดมันด้วย^C
และกลับมาทำงานต่อF
ได้
F
คำสั่งอยู่เสมอในless
ถ้าคุณตัดสินใจที่จะดูการเปลี่ยนแปลงในขณะที่มีไฟล์ที่เปิดless
ตีF
จะเปิด ขอบคุณhiergiltdiestfuและwildcard ที่ชี้ให้เห็น
tail
นี้เป็นจริงดีกว่า ขอบคุณสำหรับทิป; ฉันไม่เคยคิดที่จะใช้less
สิ่งนี้ หมายเหตุสำหรับคนอื่น ๆ : คุณยังสามารถเพียงแค่เรียกใช้และจากนั้นประเภทless <file>
F
นอกจากคำตอบ / u / Anthon คุณสามารถทำสิ่งต่อไปนี้:
{ cat filename; tail -0f filename; }
ที่-0
ตัวเลือกในการหางเทียบเท่ากับ-n 0
ความหมาย: 0 สายโชว์ แต่-f
จะแสดงบรรทัดใหม่
{ }
คุณไม่จำเป็นต้องวงเล็บ ฉันใช้พวกเขาเพราะบางครั้งคุณต้องการเปลี่ยนเส้นทางตัวจัดเก็บไฟล์ในบางวิธี ตัวอย่างเช่น
{ cat ; tail -0f -; } < /var/log/messages
ตั้งข้อสังเกตโดย Ben Milwood: คุณอาจมีสภาวะการแข่งขันที่ไฟล์จะเติบโตขึ้นระหว่างการสิ้นสุดของการcat
ดำเนินการและการเริ่มต้นของtail
การดำเนินการ แต่อีกครั้งนี่เป็นปัญหา "วิชาการ" เพื่อแก้ปัญหาการศึกษา
cat
เสร็จสิ้นและtail
เริ่มต้นคุณจะไม่เห็นบรรทัดเหล่านั้น ไม่น่าจะเป็นเรื่องใหญ่ แต่เป็นเหตุผลที่ชอบtail
โซลูชันที่บริสุทธิ์
{ cat; tail -n +0 -f; } < file
จะแก้ไขการแข่งขันเพราะหางจะพิมพ์ข้อมูลใหม่ใด ๆ ที่ปรากฏขึ้นระหว่างการcat
ออกและการtail
เริ่มต้นของ แน่นอนมันทำให้cat
ซ้ำซ้อน การเปลี่ยนเส้นทางจะเกิดขึ้นเพียงครั้งเดียวและtail
stdin เป็นตัวอธิบายไฟล์ที่cat
อ่านไปยัง EOF แล้วดังนั้นตำแหน่งปัจจุบันของตำแหน่งจึงcat
หยุด คุณสามารถทดสอบได้โดยการใส่echo foo >> file
ข้างใน{}
เพื่อสร้างการแข่งขันทุกครั้ง
watch
คำสั่งควรทำเพื่อคุณ
คุณยังสามารถลอง
less +FG
คุณจะมีตัวเลือกเพิ่มเติมพร้อมless
คำสั่งเพื่อเลื่อนดูไฟล์ตามที่คุณบอกว่าเป็นไฟล์ขนาดใหญ่
+F
ตัวเลือกสำหรับ