วิธีการติดตาม (a la“ tail -f”) เป็นไฟล์ไบนารี่ตั้งแต่ต้น?


10

เป็นไปได้หรือไม่ที่จะติดตามไฟล์ไบนารีตั้งแต่เริ่มต้น a la tail -f?

สิ่งนี้มีประโยชน์ในบางกรณีเช่นหากฉันกำลังscpส่งไฟล์ไปยังเซิร์ฟเวอร์ระยะไกลและในเวลาเดียวกันฉันต้องการให้ฟีดไปยังกระบวนการอื่น (ใช่ฉันรู้ว่าฉันสามารถใช้ssh+ catเทคนิค)

เท่าที่ฉันอ่านจาก FM tailจะเขียนโดยมีไฟล์ข้อความอยู่ในใจ

มีวิธีง่ายๆในการดำเนินการดังกล่าวโดยใช้เครื่องมือ posix มาตรฐาน?


มันบอกว่าtailสามารถใช้กับไฟล์ข้อความได้เท่านั้น?
rozcietrzewiacz

@rozcietrzewiacz สำหรับ unices ที่เก่ากว่ายูทิลิตี้ที่เน้นข้อความเช่นtailไม่สามารถจัดการกับไฟล์ไบนารีได้: พวกมันอาจจะสำลักกับ null bytes หรือละเว้น stray bytes หลังจากขึ้นบรรทัดใหม่ในไฟล์อินพุต ระบบที่ทันสมัยจะรับมือ
Gilles 'หยุดชั่วร้าย'

คำตอบ:


12

tailทำงานกับข้อมูลไบนารีเช่นเดียวกับข้อความ tail -c +1 -fหากคุณต้องการที่จะเริ่มต้นที่จุดเริ่มต้นมากของไฟล์ที่คุณสามารถใช้


มันไม่ทำงานสำหรับทุกคนหรือไม่ ฉันมีไฟล์ไบนารีที่มี 16 สตริงของสตริงที่ฉันเห็นเมื่อฉันใช้cat bin_file | strings - -o | grep match_stringแต่เมื่อฉันทำฉันจะไม่tail -c +1 -f bin_file | strings - -o | grep match_stringได้อะไรเลยในการแข่งขันครั้งที่ 9 ฉันยังตั้งข้อสังเกตว่าหมายเลขบรรทัดจาก-oนั้นทั้งหมด 1 น้อยกว่าเมื่อเทียบกับเอาต์พุตแมว ถ้าฉันปล่อย grep ออกไปฉันจะได้ 16 แมทช์ (รวมกับทุกอย่าง) ดังนั้นฉันคิดว่าปัญหาคือ grep แต่ฉันลอง perl one-liner และหยุดในที่เดียวกัน ...
hepcat72
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.