Làm cách nào để bắt đầu theo dõi một tệp chưa được tạo


12

Tôi sử dụng tailđể theo dõi tiến trình công việc mà tôi biết sẽ ghi tiến trình của họ vào đĩa. Hầu như luôn luôn, tôi biết họ sẽ tạo tập tin nào trước khi bắt đầu chạy (các công việc được gửi bởi một người lập lịch trên siêu máy tính)

Có cách nào để tailcác tập tin này trước khi chúng được tạo ra? Tôi muốn làm như vậy trong khi tránh các điều kiện chủng tộc và / hoặc đưa ra các giả định về cách thức hoặc thời điểm các công việc ghi vào đĩa.

Câu trả lời:


13

Sử dụng -Fcờ để theo đuôi (giả sử bạn có tailtừ lõi GNU):

tail -F file-that-does-not-exist

Từ man tail:

   -F     same as --follow=name --retry
   --retry
          keep trying to open a file even when it is or becomes inaccessi
          ble; useful when following by name, i.e., with --follow=name
   -f, --follow[={name|descriptor}]
          output appended data as the file grows; -f, --follow, and --fol
          low=descriptor are equivalent

3

Nếu tailviệc triển khai của bạn không có --retrytùy chọn, có lẽ bạn chỉ có thể gian lận và tự tạo tệp:

$ touch file && tail-f file

Tùy thuộc vào yêu cầu của bạn liên quan đến quyền sở hữu và quyền có thể là đủ.

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.