Чи менше має таку функцію, як хвіст --follow = name (-F)


41

Команда lessможе бути використана для заміни tailв

tail -f file

щоб надати такі функції, як обробка двійкового виводу та переміщення прокрутки:

less +F file

На +кошти префікс «вид , що тип , який після запуску», а ключ Fпочинається наступний.

Але lessтакож може замінити

tail --follow=name file

що випливає, fileнавіть якщо фактичний файл видаляється або переміщується, як файл журналу, до якого переміщено файл file.log.1, а потім створюється новий файл з тим же ім'ям, що і наступний файл?


1
Ви можете спробувати з less --follow-nameабоless --follow-name +F
don_crissti

@don_crissti Приємно ... less --follow-name +Fце - не знаю, як я це пропустив - я був майже впевнений, що шукав сторінку людини follow... дивно. Зробіть це відповіддю!
Volker Siegel

Ну, ще кілька пошук показує , що це вже було запропоновано і відповів тут , так що я залишу його в якості коментаря. Ви завжди можете отримати відповідь.
don_crissti

@don_crissti Правильно ... за винятком того, що ваша правильна відповідь там не знайдена - --follow-nameописується, але +Fніколи не згадується, і я думаю, що це досить важливо, оскільки це очевидно не широко відомо.
Volker Siegel

Якщо ви приїхали сюди через пошук Google less follow, ЧИТАТИ ЗАПИТАННЯ. Це вже відповідає, як зробити lessнаступні зміни файлів!
Hubert Grzeskowiak

Відповіді:


40

Так, lessможе слідувати ім'я файлу

Ця функція має досить незрозумілий синтаксис:

less --follow-name +F file.log

Що менше, --follow-nameто відрізняється від tailваріанту --follow=name.
Він не змушує lessслідкувати за файлом, замість цього він змінює поведінку командного ключа Fвсередині менше, яке слід виконувати на основі імені файлу, а не дескриптора файлу.

Крім того, немає нормальної опції для запуску lessв наступному режимі.
Але ви можете використовувати командний рядок, щоб надати натискання клавіш після запуску, встановивши їх префіксом +.
Поєднання параметра модифікатора з +F, lessфактично, розпочнеться в (модифікованому) режимі слідування.

Використовуйте +Fокремо для еквіваленту звичайної tail -f:

less +F file.log

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

@CMCDragonkai Цікавий момент. lessмає параметри для управління розміром буфера, що використовується для файлу ( -bі -B), мені не очевидно, чи обмежений розмір за замовчуванням.
Волкер Зігель

На сторінці "man" -Bйдеться про те, що "За замовчуванням, коли дані зчитуються з труби, буфери розподіляються автоматично за необхідності. Якщо велика кількість даних зчитується з труби, це може спричинити виділення великої кількості пам'яті. -B варіант вимикає це автоматичне розподілення буферів для труб, так що для труби використовується лише 64 К (або кількість місця, визначене параметром -b). " Отже, це означає, що при зчитуванні з нескінченної труби нескінченна пам'ять виділяється за замовчуванням, але якщо при читанні з такого файлу, як файл журналу, за замовчуванням використовується 64 K фрагменти.
CMCDragonkai

4

У Fedora принаймні менше є опція + F, яка слідкує за вмістом файлу так само, як це робить хвіст -f ..

Оновіть, спробуйте натиснути F менше, щоб увімкнути режим переходу


Ти впевнений? Мої менш має суперечливий варіант з таким же ім'ям, -F: Людина сторінка менше говорить: -F or --quit-if-one-screen. Яка у lessвас версія ? Шахта каже less 458з можливістю -V.
Волкер Зігель


Дуже цікаво, дякую за посилання! Це, здається, не є гну менше. Повний перший рядок less -Vє less 458 (GNU regular expressions). Будь ласка, дайте мені свою версію.
Volker Siegel

Так, я впевнений, але голосувати мене вперед і вниз потрібно, обмінявшись stackexchange, потрібно поділитися коханням
user1529413

1
Просто щоб бути впевненим, ти думав, що я проголосував за тебе: Ні, я виступав за тебе.
Волкер Зігель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.