Является ли `tail -f` более эффективным, чем` less + F`?

В этой статье были указаны некоторые причины использования less +F over tail -f. Большинство причин касаются функций , а не технических причин: less +F может выделение, поиск, перемещение по файлу.

Как насчет технических причин?

AFAIK, less использует опрос каждую секунду для обновления файла, а tail, в качестве POSIX, определенных , используйте цикл, который спит в течение 1 секунды и копирует любые доступные байты. Этого достаточно, но POSIX также рекомендовал внедрение более эффективного метода. По крайней мере хвост GNU используйте описать , поэтому он более эффективен.

less также сохраняет содержимое файла в памяти, поэтому с огромным файлом, например, несколько гигабайт, он может замедлить работу вашего компьютера.

Итак, есть ли другие технические причины использовать tail -f over less +F?

28 голосов | спросил cuonglm 31 MarpmTue, 31 Mar 2015 19:25:01 +03002015-03-31T19:25:01+03:0007 2015, 19:25:01

1 ответ


31

Я думаю, что вы рассмотрели главное: less +F читает весь файл, тогда как во многих системах tail -f только считывает конец файла и даже в тех системах, где он читает весь файл, по крайней мере, он не сохраняет весь файл в памяти. Это делает less +F нецелесообразным для очень больших файлов. Однако вы можете запустить less -n +F, который вызывает less, чтобы читать только конец файла за счет отсутствия номеров строк.

Под капотом между less -n +F и tail -f, основное отличие состоит в том, что tail использует службу уведомлений об изменении файла на некоторых платформах (например, inotify в Linux), что позволяет он отображает новые данные мгновенно, тогда как less может занять до 1 секунды, чтобы отображать новые данные, поскольку он проверяет новые данные в цикле и спит между проверками.

Еще одно отличие между less +F и tail -f заключается в том, что less будет вызывать свой входной фильтр, но обычно это не повлияет на файлы журнала.

Техническая разница в пользу less +F заключается в том, что вы можете усечь строки по ширине экрана с помощью -S, тогда как tail не дает вам выбора, кроме как отображать всю строку независимо от того, как долго она будет.

Взаимодействие с интерфейсом, это не так важно для использования less. tail -f полезно заметить, когда что-то происходит. Вы можете даже запустить его в фоновом режиме. Если что-то происходит, и вы хотите посмотреть файл более подробно, вы можете открыть его в less в другом терминале.

Если вы хотите посмотреть несколько файлов, многопользовательский режим - это путь. Даже для одного файла многопользовательская функция имеет дополнительные отличные функции, такие как фильтрация и раскраски.

ответил Gilles 1 AMpWed, 01 Apr 2015 03:44:57 +030044Wednesday 2015, 03:44:57

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132