Почему некоторые изменения файлов не отображаются в хвосте -f?

Я попытался следить за файлом истории mysql с помощью:

tail -f ~/.mysql_history 

в другом окне я ввел один и тот же пользователь:

 mysql -u someotheruser -p 

и ни одна из следующих команд не показана в моем хвосте. когда я выхожу из консоли mysql, по-прежнему ничего не отображается в tail -f , хотя, когда я cat файл истории, я вижу, что есть новые записи в конце файла

Это связано с тем, что mysql полностью воссоздает файл .mysql_history во время его запуска.

Поэтому, когда вы запускаете cat ~/.mysql_history после выполнения mysql , вы ищете совершенно другой файл. Не один tail читает.

Вы можете легко проверить это с помощью простого теста:

  $ ls -li .mysql_history 6685441 -rw------- 1 user user 1570 Sep 15 21:26 .mysql_history $ mysql i_test ... mysql> Bye $ ls -li .mysql_history 6685474 -rw------- 1 user user 1592 Nov 29 20:27 .mysql_history 

как вы видите, inode отличается. Так вот ответ.