-f
следует по индоду. Если вы хотите следовать по имени, например, когда программа полностью воссоздает файл, используйте -F
вместо этого.
tail -f не отслеживает изменения файла
Недавно я изучал использование tail -f
для мониторинга некоторых текстовых файлов, например, так: tail -f /var/sometext
Однако, когда я проводил тестирование, это не сработало. Я создал новый файл и запустил: tail -f /home/name/text
Затем я открыл журнал в vim, отредактировал, сохранил его, и кажется, что tail не «видит» изменения.
Странная вещь, бег, echo "hello" >> /home/name/text
кажется, работает нормально (хвост видит изменения). Я где-то читал, что это как-то связано с дескрипторами файлов и созданием новых inode при сохранении файла. Может кто-нибудь объяснить это для меня? Я не совсем понял, как это на самом деле работает, но у меня есть представление о дескрипторах файлов. Спасибо!
3 ответа на вопрос
tail -f наблюдает за концом файла, и когда конец файла перемещается, он печатает новое содержимое и ждет, пока конец файла не переместится снова. Другими словами, изменения в середине документа не будут найдены командой tail -f, только добавлением.
На самом деле правдивая история такова:
tail -f контролирует память, а не диск. Но он не может получить доступ к защищенной памяти, такой как редактирование файла, открытого текстовым редактором.
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4