Bạn mô tả tail
tiện ích GNU . Sự khác biệt giữa hai cờ này là nếu tôi mở một tệp, ví dụ như tệp nhật ký, như sau:
$ tail -f /var/log/messages
... và nếu tiện ích xoay vòng nhật ký trên máy của tôi quyết định xoay tệp nhật ký đó trong khi tôi đang xem tin nhắn được ghi vào nó ("xoay" nghĩa là xóa hoặc di chuyển đến một vị trí khác, v.v.), đầu ra mà tôi thấy sẽ chỉ dừng lại.
Nếu tôi mở tập tin tail
như thế này:
$ tail -F /var/log/messages
... Và một lần nữa, tệp được xoay, đầu ra sẽ tiếp tục chảy trong bảng điều khiển của tôi vì tail
sẽ mở lại tệp ngay khi có sẵn một lần nữa, tức là khi (các) chương trình ghi vào nhật ký bắt đầu ghi vào mới /var/log/messages
.
Trên các hệ thống BSD miễn phí, không có -F
tùy chọn nào , nhưng tail -f
sẽ hoạt động giống như tail -F
trên các hệ thống GNU, với sự khác biệt là bạn nhận được thông báo
tail: file has been replaced, reopening.
trong đầu ra khi tệp bạn đang theo dõi biến mất và xuất hiện lại.
BẠN CÓ THỂ KIỂM TRA NÀY
Trong một phiên shell, làm
$ cat >myfile
Điều đó bây giờ sẽ chờ bạn gõ công cụ. Chỉ cần đi trước và gõ một số từ vô nghĩa, một vài dòng. Tất cả sẽ được lưu vào tập tin myfile
.
Trong một phiên shell khác (có thể trong một thiết bị đầu cuối khác, mà không làm gián đoạncat
):
$ tail -f myfile
Điều này sẽ hiển thị (cuối của) nội dung myfile
trong bảng điều khiển. Nếu bạn quay lại phiên shell đầu tiên và nhập thêm thứ gì đó, đầu ra đó sẽ ngay lập tức được hiển thị tail
trong phiên shell thứ hai.
Bây giờ bỏ cat
bằng cách nhấn Ctrl+D, và loại bỏ các myfile
tập tin:
$ rm myfile
Sau đó chạy lại con mèo:
$ cat >myfile
... và gõ một cái gì đó, một vài dòng.
Với GNU tail
, các dòng này sẽ không hiển thị trong phiên shell thứ hai (nơi tail -f
vẫn đang chạy).
Lặp lại bài tập với tail -F
và quan sát sự khác biệt.