我一直在試圖找到一種方法,使tail
等待文件被創建,然後開始拖尾他們。如何讓尾巴等待文件被創建之前,他們尾巴
例如,我們假設我有一個尚未創建的logs
目錄,但我的應用程序會創建它。假設我有另一個運行tail -F logs/*.log
的進程,並且在創建它們後立即開始拖拽所有文件。我會怎麼做呢?
另一件事:如果tail
拖尾了一些被刪除的文件,是否有可能讓它再次開始拖尾,如果它被重新創建?
我一直在試圖找到一種方法,使tail
等待文件被創建,然後開始拖尾他們。如何讓尾巴等待文件被創建之前,他們尾巴
例如,我們假設我有一個尚未創建的logs
目錄,但我的應用程序會創建它。假設我有另一個運行tail -F logs/*.log
的進程,並且在創建它們後立即開始拖拽所有文件。我會怎麼做呢?
另一件事:如果tail
拖尾了一些被刪除的文件,是否有可能讓它再次開始拖尾,如果它被重新創建?
有了一定的粗糙度,這個工程:
while inotifywait -q .; do kill $PID; tail -F -n 0 * & PID=$!; done
一旦進入目錄的變化的話,就是tail
命令被重新啓動。
很酷的答案! :) – carlspring
另一件事:如果拖尾拖尾了一些被刪除的文件,是否有可能讓它再次開始拖尾,如果它被重新創建?
雖然你是tail
某些文件被截斷並重新創建; tail
命令自動處理它。您無需爲該特定文件重新發出tail
命令。
只有目錄尚未被刪除,這纔是真實的。一旦它被刪除,'tail'報告它並停止尋找那裏的變化。如果您的應用程序重新創建文件夾,「tail」將繼續滾動數據。 – carlspring
重複在Unix.SE上:[在整個目錄中監視文件(ala tail -f)(甚至是新文件)](http://unix.stackexchange.com/questions/39729/monitor-files-ala-tail -f-in-an-entire-directory-even-new-ones) – Koterpillar
謝謝!我看了一下並安裝了它。我在你提供的鏈接中嘗試了這個例子,但是我似乎無法讓它起作用。你介意提供一些更多的解釋和例子嗎? – carlspring
那麼這個例子發生了什麼? – Koterpillar