"Хвіст -f" більш ефективний, ніж "менше + F"?


34

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

Як щодо технічних причин?

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

less також зберігає вміст файлу в пам'яті, тому з величезним файлом, як кілька гігабайт, він може сповільнити ваш комп'ютер.

Отже, є чи які - або інші технічні причини , щоб використовувати tail -fбільш less +F?

Відповіді:


37

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

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

Ще одна відмінність між less +Fі tail -fполягає в тому, що він lessбуде викликати його вхідний фільтр, але це, як правило, не вплине на файли журналів.

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

Інтерфейс - не так багато переваг у використанні less. tail -fкорисно помітити, коли щось відбувається. Можна навіть запустити його у фоновому режимі. Якщо щось трапляється, і ви хочете переглянути файл більш докладно, його можна відкрити lessв іншому терміналі.

Якщо ви хочете переглянути декілька файлів, це багатоцільовий шлях. Навіть для одного файлу багатоповерхівка має додаткові чудові функції, такі як фільтрування та забарвлення.


З дуже великим файлом чи дозволяє "менше -n 99,99p + F" менше читати весь файл?
cuonglm

1
@cuonglm Ага, правильно. Просто less -nдостатньо, що дозволяє менше використовувати стратегію прагнення до кінця, а потім читати назад.
Жил "ТАК - перестань бути злим"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.