X

tail -f 和 -F 差異

tail -f 和 -F 參數的差別, 主要是差在 -f 如果在追蹤此檔案被移除重建了(ex: log rotate), 那就停止不會動了, 而 -F 會再重新 try 那個同檔名的那個檔案, 如果重建了, 會繼續追蹤此檔案, 不會因為檔案被 rotate 而就此停止追蹤.

對等命令參數: tail -F FILENAME = tail --follow=name --retry FILENAME

(man 解釋: --retry: keep trying to open a file even if it is inaccessible when tail starts or if it becomes inaccessible later)

來做做實驗:

$1 代表 shell 1, $2 代表 shell 2.(當做分別開兩個視窗(shell))

  • tail -f

$1 tail -f aa
$2 echo "ccc" >> aa
$1 ccc
$2 echo "ccc" >> aa
$1 ccc
$2 mv aa bb
$2 echo "ccc" >> aa
$1 => 不會動了

  • tail -F

$1 tail -F aa (或 tail --follow=name --retry aa)
$2 echo "ccc" >> aa
$1 ccc
$2 echo "ccc" >> aa
$1 ccc
$2 mv aa bb
tail: 「aa」 has been replaced;  following end of new file
$2 echo "ccc" >> aa
$1 ccc ($1  不會因為檔案 rotate 而停止追蹤此檔)

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post