Làm thế nào để theo dõi (một la đuôi đuôi -f) một tệp nhị phân ngay từ đầu?


10

Có thể theo một tệp nhị phân ngay từ đầu tail -fkhông?

Điều này hữu ích trong một số trường hợp, ví dụ: nếu tôi đang gửi scpmột tệp đến một máy chủ từ xa, đồng thời tôi muốn đưa nó sang một quy trình khác (vâng, tôi biết tôi có thể sử dụng ssh+ catthủ thuật).

Theo như tôi đọc từ FM, tailđược viết có các tệp văn bản trong tâm trí.

Có cách nào đơn giản để thực hiện các hoạt động như vậy bằng cách sử dụng các công cụ posix tiêu chuẩn không?


Trường hợp nó nói rằng tailchỉ có thể được sử dụng với các tập tin văn bản?
rozcietrzewiacz

@rozcietrzewiacz Trên các thông báo cũ hơn, các tiện ích hướng văn bản như tailkhông phải lúc nào cũng đối phó với các tệp nhị phân: chúng có thể bị nghẹt các byte rỗng hoặc bỏ qua các byte đi lạc sau dòng mới nhất trong các tệp đầu vào. Hệ thống hiện đại làm đối phó.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


12

tailhoạt động với dữ liệu nhị phân cũng như với văn bản. Nếu bạn muốn bắt đầu ngay từ đầu của tập tin, bạn có thể sử dụng tail -c +1 -f.


Đây không phải là làm việc cho bất cứ ai? Tôi có một tệp nhị phân có 16 lần xuất hiện của một chuỗi mà tôi thấy khi tôi sử dụng cat bin_file | strings - -o | grep match_string, nhưng khi tôi làm tail -c +1 -f bin_file | strings - -o | grep match_string, tôi không nhận được gì qua trận đấu thứ 9. Tôi cũng lưu ý rằng số dòng từ -otất cả là 1 ít hơn so với đầu ra của con mèo. Nếu tôi rời khỏi grep, tôi nhận được tất cả 16 trận đấu (trộn lẫn với mọi thứ khác), vì vậy tôi nghĩ rằng vấn đề là grep, nhưng tôi đã thử một lớp lót perl và nó dừng lại ở cùng một nơi ...
hepcat72
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.