làm cho đuôi chờ một tập tin tồn tại


25

tail -f bar/somefile.logsẽ thất bại ngay lập tức khi somefile.log không tồn tại. Làm cách nào để tạo đuôi chờ vô thời hạn cho tệp đó được tạo (điều này sẽ xảy ra trong một vài phút)?

Cập nhật: bằng cách sử dụng -F, tôi thấy:

tail: cannot open `bar/somefile.log' for reading: No such file or directory
tail: cannot watch parent directory of `bar/somefile.log': No such file or directory

bởi vì barchưa tồn tại (nó sẽ được tạo trong một vài phút). khi barđược tạo ra và somefile.logđược chạm vào, đuôi không nhận được những thay đổi nào cả.

Câu trả lời:


28

Những công việc này:

while ! tail -f bar/somefile.log ; do sleep 1 ; done

đây là những gì cuối cùng đã làm việc cho tôi (đối với các trường hợp thư mục cha bị thiếu).
Srid nói Phục hồi lại

Điều này sẽ làm việc cho Mac?
mCeviker

31

Bạn không đề cập đến hệ điều hành nào bạn cần cho nó, nhưng tailtrên linux có các tùy chọn --retry và --follow sẽ làm điều đó;

tail --retry --follow=name somefile.log

6
cảm ơn, hoặc tail -F somefile.log. nhưng sau đó, đuôi không thành công vì một lý do khác (tôi đã cập nhật câu hỏi của mình)
Srid nói Phục hồi lại

6

Tạo tập tin đầu tiên:

touch somefile ; tail -f somefile

Giải pháp logic thanh lịch đẹp.
CarComp
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.