đuôi: Đọc toàn bộ tập tin, và sau đó làm theo


35

Tôi muốn một tail -floại hành vi đọc toàn bộ tệp và sau đó tiếp tục theo dõi nó như được viết.


DUNG DỊCH

Dựa trên câu trả lời tôi đã chấp nhận, công việc này: tail -f -n +1 {filename}

Tại sao nó hoạt động: Các -ftùy chọn tiếp tục "làm theo" các tập tin và đầu ra dòng mới khi chúng được ghi vào tập tin. Các -n +1hướng dẫn tailđể bắt đầu đọc các tập tin từ dòng đầu tiên. Sử dụng -n -10sẽ bắt đầu với mười dòng cuối cùng của tệp.


2
Đây là một nhận xét không phải là một câu hỏi. Và đuôi không làm điều đó: tail -f -n 10000000000000000000có lẽ sẽ hiển thị tất cả các dòng phải không? (có thể 10000000000000000000 là hơi nhiều: =))
Rinzwind

Tôi tin rằng more fileNamesẽ làm điều đó
ryekayo

1
không..cũng không thêm các dòng bổ sung được thêm vào tập tin sau khi bắt đầu thêm.
Rinzwind

Có lẽ tail -f -n 100...sẽ liên quan đến việc đọc trước tệp để xác định số lượng dòng, trừ khi nó đủ thông minh để tìm ra giới hạn trên cho số lượng dòng dựa trên kích thước tệp.
mwfearnley

Câu trả lời:


51

Sử dụng

tail -f -n +1

Sử dụng man tailsẽ cung cấp cho bạn thêm chi tiết, đoạn trích có liên quan sau đây.

<snip>Numbers having a leading plus (`+') sign are relative to the
beginning of the input, for example, ``-n +2'' starts the display at the
second line of the input.</snip>

-f      The -f option causes tail to not stop when end of file is
        reached, but rather to wait for additional data to be appended to
        the input.  The -f option is ignored if the standard input is a
        pipe, but not if it is a FIFO.

-n number
        The location is number lines.

3
Bạn có thể vui lòng thêm những "chi tiết" đó vào câu trả lời của bạn không? Hãy giải thích tại saolàm thế nào giải pháp của bạn hoạt động. (Tìm thấy câu trả lời của bạn trong hàng đợi bài viết chất lượng thấp.)
kraxor

1
@kraxor Bạn có thể tìm thấy "chi tiết hơn" bằng cách thực hiện man tail(và đọc nó) như câu trả lời hoặc thực hiện tìm kiếm trực tuyến cho "trang chủ đuôi" và đọc một trong số chúng. tailhoạt động bằng cách bắt đầu tại một vị trí trong tệp, đọc (và hiển thị) đến cuối, sau đó theo dõi để tăng kích thước tệp. Khi kích thước tệp tăng, tailđọc và hiển thị từ vị trí EOF cũ đến cuối tệp mới.
hát rong

2
@waltinator Tôi không thực sự yêu cầu bản thân mình. Tôi yêu cầu anh ta thêm chi tiết vì bài đăng của anh ta bị gắn cờ chất lượng thấp nhưng tôi không muốn bỏ phiếu để xóa vì anh ta đã trả lời đúng.
kraxor

1
Điều này thật đúng với gì mà tôi đã tìm kiếm. Tôi đã sử dụng tail -50 {filename}trước đây, nhưng không thành công khi kết hợp cả hai.
Sonny


3

Thử đi:

watch tail {filename}

đâu {filename}là tập tin mà bạn muốn để mắt tới. Điều này sẽ liên tục theo dõi lệnh để thay đổi và đưa ra các thay đổi thành thiết bị xuất chuẩn. Nó khá tiện dụng.


Đây trông giống như một công cụ rất tốt đẹp. Mặc dù nó không hoàn toàn cho kết quả mà tôi đang tìm kiếm, tôi chắc chắn sẽ ghi nhớ nó. Kết hợp nó với câu trả lời được chấp nhận là khá hay:watch tail -n +1 {filename}
Sonny

Đúng, có vẻ như bạn đã hoàn thiện nó!
Rick Chatham

watchthực sự là một công cụ hữu ích nhưng để xem việc thay đổi đầu ra của một lệnh nhưng để xem phần cuối của một tệp đang được nối thì sử dụng nó tốt hơn nhiều tail -f. --- watch tail {filename}sẽ mở lại và đọc lại phần cuối của tập tin cứ sau hai giây. Mặt khác, tail -fđồng hồ cho sự phát triển của tập tin và khi được phát hiện, nó ngay lập tức chỉ đọc phần được nối thêm. tailf -fhiệu quả hơn nhiều và phản ứng nhanh hơn nhiều. Ngoài ra, nó sẽ liên tục hiển thị nội dung tập tin từ điểm bạn bắt đầu. --- watchghi đè đầu ra của nó cứ sau hai giây.
pabouk
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.