đuôi -f không theo dõi thay đổi tập tin


14

Gần đây tôi đã xem xét việc sử dụng tail -fđể theo dõi một số tệp văn bản như vậy : tail -f /var/sometext.

Tuy nhiên, khi tôi thực hiện một số thử nghiệm, nó dường như không hoạt động. Những gì tôi đã làm là tôi đã tạo một tệp mới và chạy: tail -f /home/name/textSau đó, tôi đã mở nhật ký trong vim và thực hiện một số chỉnh sửa, lưu nó và có vẻ như đuôi không "nhìn thấy" sự thay đổi.

Điều kỳ lạ là, chạy echo "hello" >> /home/name/textdường như hoạt động tốt (đuôi thấy sự thay đổi). Tôi đã đọc ở đâu đó điều này có liên quan đến các mô tả tệp và các nút mới được tạo khi lưu tệp.

Ai đó có thể giải thích điều này cho tôi? Tôi hoàn toàn không hiểu làm thế nào nó thực sự hoạt động, nhưng tôi có ý tưởng về việc mô tả tập tin là gì.

Câu trả lời:


29

-ftheo sau là inode. Nếu bạn muốn theo dõi theo tên, chẳng hạn như khi một chương trình tạo lại hoàn toàn tệp, thì hãy sử dụng -Fthay thế.


Gọn gàng, tôi không bao giờ biết điều đó. Nó trả tiền để đọc các trang tiện ích ngay cả (đặc biệt là?) Nếu bạn sử dụng chúng mọi lúc!
Lyle

1

tail -f xem phần cuối của tệp và khi phần cuối của tệp di chuyển, nó sẽ in nội dung mới và đợi phần cuối của tệp di chuyển lại. Nói cách khác, những thay đổi ở giữa tài liệu sẽ không được tìm thấy bởi đuôi -f, chỉ thêm vào.


-1

Thật ra, câu chuyện có thật là:

đuôi -f theo dõi bộ nhớ, không phải đĩa. Nhưng nó không thể truy cập bộ nhớ được bảo vệ, chẳng hạn như chỉnh sửa tệp đã mở trình soạn thảo văn bản.


Các tail -flệnh hoạt động trên một tập tin (file descriptor sau khi mở tập tin). Mặc dù trên thực tế, các sửa đổi mới của tệp vẫn còn trong bộ nhớ (bộ đệm, bộ đệm) không thành vấn đề. tailvẫn truy cập tệp thông qua bộ mô tả tệp. Không quan trọng làm thế nào các tập tin được sửa đổi. --- Câu trả lời của Ignacio Vazquez-Abrams là chính xác - trình chỉnh sửa không sửa đổi tệp hiện tại (được mở trong tail), nó lưu các thay đổi vào một tệp mới có cùng tên với tệp cũ.
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.