Là `đuôi -f` hiệu quả hơn` less + F`?


34

Bài viết này chỉ ra một số lý do để sử dụng less +Fhơn tail -f. Hầu hết các lý do là về các tính năng , không phải lý do kỹ thuật : less +Fcó thể làm nổi bật, tìm kiếm, điều hướng qua tệp.

Làm thế nào về lý do kỹ thuật ?

AFAIK, lesssử dụng bỏ phiếu mỗi giây để cập nhật tệp, trong khi tail, vì POSIX đã xác định sử dụng vòng lặp ngủ trong 1 giây và sao chép bất kỳ byte nào có sẵn. Điều này là đủ nhưng POSIX cũng khuyến khích thực hiện để sử dụng phương pháp hiệu quả hơn. Ít nhất đuôi GNU sử dụng inotify , vì vậy nó hiệu quả hơn.

less cũng giữ nội dung tệp trong bộ nhớ, vì vậy với tệp lớn, như một vài gigabyte, nó có thể làm chậm máy tính của bạn.

Vì vậy, có bất kỳ lý do kỹ thuật khác để sử dụng tail -fhơn less +F?

Câu trả lời:


37

Tôi nghĩ rằng bạn đã bao quát điểm chính: less +Fđọc toàn bộ tệp, trong khi trên nhiều hệ thống tail -fchỉ đọc phần cuối của tệp và ngay cả trên các hệ thống đọc toàn bộ tệp, ít nhất là nó không giữ toàn bộ tệp trong trí nhớ. Điều đó làm cho less +Fkhông thực tế cho các tập tin rất lớn. Tuy nhiên, bạn có thể chạy less -n +F, nguyên nhân lesschỉ đọc phần cuối của tệp, với chi phí không hiển thị số dòng.

Trong giới hạn, giữa less -n +Ftail -f, sự khác biệt chính là tailsử dụng dịch vụ thông báo thay đổi tệp trên một số nền tảng (ví dụ: inotify trên Linux), cho phép nó hiển thị dữ liệu mới ngay lập tức, trong khi lesscó thể mất tới 1 giây để hiển thị dữ liệu mới bởi vì nó kiểm tra dữ liệu mới trong một vòng lặp và ngủ giữa các lần kiểm tra.

Một điểm khác biệt giữa less +Ftail -flesssẽ gọi bộ lọc đầu vào của nó, nhưng thường sẽ không có bất kỳ tác động nào đến các tệp nhật ký.

Một sự khác biệt kỹ thuật có lợi less +Flà bạn có thể làm cho nó cắt bớt các dòng ở độ rộng màn hình bằng -Stùy chọn, trong khi tailbạn không có lựa chọn nào khác ngoài việc hiển thị toàn bộ dòng cho dù nó dài bao nhiêu.

Giao diện khôn ngoan, không có nhiều lợi thế để sử dụng less. tail -flà hữu ích để thông báo khi một cái gì đó xảy ra. Bạn thậm chí có thể chạy nó trong nền. Nếu có điều gì đó xảy ra và bạn muốn xem tệp chi tiết hơn, bạn có thể mở nó lesstrong một thiết bị đầu cuối khác.

Nếu bạn muốn xem nhiều file, multitail là con đường để đi. Ngay cả đối với một tệp duy nhất, đa nhiệm có các tính năng tiện lợi bổ sung như lọc và tô màu.


Với tệp rất lớn, 'less -n 99,99p + F' có ngăn không cho đọc toàn bộ tệp không?
cuonglm

1
@cuonglm À, đúng rồi. Chỉ cần less -nlà đủ, điều đó làm cho ít sử dụng chiến lược tìm kiếm để kết thúc sau đó đọc lại.
Gilles 'SO- ngừng trở nên xấu xa'
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.