każ ogonowi czekać na istnienie pliku

25

tail -f bar/somefile.logzawiedzie natychmiast, gdy plik somefile.log nie istnieje. Jak sprawić, aby ogon bez końca czekał na utworzenie tego pliku (co nastąpi za kilka chwil)?

Aktualizacja: za pomocą -F, widzę:

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

ponieważ barjeszcze nie istnieje (zostanie utworzony za kilka chwil). kiedy barzostał stworzony i somefile.logzostał dotknięty, ogon wcale nie wychwycił zmian.

Srid mówi Przywróć Monikę
źródło

Odpowiedzi:

28

To działa:

while ! tail -f bar/somefile.log ; do sleep 1 ; done
Cyrus
źródło
to w końcu działało dla mnie (dla brakujących przypadków katalogu nadrzędnego).
Srid mówi Przywróć Monikę
Czy to zadziała na komputerze Mac?
mCeviker,
31

Nie wspominasz, do jakiego systemu operacyjnego go potrzebujesz, ale tailw systemie Linux masz opcje --retry i - follow, które to zrobią;

tail --retry --follow=name somefile.log
Joachim Isaksson
źródło
6
dzięki lub tail -F somefile.log. ale potem ogon zawodzi z innego powodu (zaktualizowałem moje pytanie)
Srid mówi Przywróć Monikę
6

Najpierw utwórz plik:

touch somefile ; tail -f somefile
psusi
źródło
Ładne eleganckie logiczne rozwiązanie.
CarComp