it-swarm-ru.tech

Есть ли способ динамически обновить команду less?

Мне нравится команда watch, но она имеет ее ограничения .

Мне любопытно узнать, могу ли я имитировать функциональность watch с less. Я в основном ищу возможность прокручивать мой каталог, так как он динамически модифицируется с помощью запущенного скрипта.

146
Zaid

В less вы можете набрать F, чтобы продолжить чтение в конце файла (например, tail -f); Вы можете напечатать :e и ​​имя файла для просмотра другого файла, но, к сожалению, если вы введете имя текущего файла, less не перезагрузит файл. Однако есть хитрость, которая заставляет его перечитать текущий файл, предложенный sabgenton : type :e и ​​введите имя несуществующего файла ; Это вызывает меньше, чтобы отобразить сообщение об ошибке, а затем перезагрузить текущий файл.

Если вы ищете альтернативу watch ls, вот несколько:

  • Современные файловые менеджеры (например, Nautilus, Thunar, Konqueror, Dolphin, Finder) обновляют представления в режиме реального времени.
  • Emacs не имеет обновления в реальном времени, но с auto-revert-mode, он будет перезагружать файл или каталог каждые 5 секунд (задержка настраивается).
  • Хотя w3m - это, прежде всего, веб-браузер, он делает доступным просмотрщик каталогов и текстовых файлов. Нажмите R, чтобы перезагрузить (локальный) URL.
130
Gilles 'SO- stop being evil'

Shift+F сделает less похожим на tailf. То есть он обновляется, если к файлу добавляются дополнительные данные.

68
balki

Просто введите:

less +F filename

Это эмулирует нажатие "F" в редакторе.

44
jhclark

man страницы могут быть очень информативными. Не пугайтесь их. Среди всего прочего, man less говорит, что вы можете использовать команду R для:

   R      Repaint the screen, discarding any buffered input.  Useful if the file is changing while it is being viewed.

(Я понимаю, что этому вопросу более 6 лет, но он возникает в поиске Google, поэтому я не единственный, кто нажал на ссылку, чтобы попасть сюда).

23
destenson

Клавиша "F" при запуске less будет выполнять "follow", похожую на tail -f, но я не уверен, что это достигнет того, что вы ищете здесь.

5
Dave Jennings

Я обычно просто печатаю G привязывать вывод на разовой основе. Я считаю это особенно полезным в сетевой файловой системе, такой как CIFS.

5
jorb

R для перерисовки не всегда перезагружает файл.[1]

Обходной путь, который всегда перезагружает файл, состоит в том, чтобы нажать hq, чтобы открыть страницу справки, а затем выйти. У него есть побочный эффект, заставляющий файл перезагрузиться.


[1] Вот несколько примеров ситуаций, которые R делает и не перезагружает:

  • > а также >> изменения: перезагружаться
  • sed -i, gEdit, TextEdit: НЕ перезагружаться
  • В Linux vi изменяется: перезагружаться
  • На Mac vi изменяется: НЕ перезагружаться

Я считаю, что разница сводится к тому, изменяется ли индекс (вы можете проверить с помощью ls -i foo.txt). Если индекс изменяется, то R не будет работать.

3
wisbucky

Вы можете использовать vim, чтобы прочитать файл, а затем добавить следующее отображение в .vimrc файл, и вы можете легко перезагрузить файл с ,r:

let mapleader = ","
nnoremap <leader>r :edit <CR>

Обратите внимание, что если вы уже отредактировали файл, vim будет жаловаться. Просто измените на

let mapleader = ","
nnoremap <leader>r :edit! <CR>

Игнорировать изменения.

1
puk

Вместо этого вы можете передать его tail -f, Это приведет к тому, что вы будете следовать выводу. Вы бы потеряли способность перемещаться (прокручиваться) через ваш вывод, хотя.

0
Gert

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

Я закончил тем, что сделал макро кнопку для этого в моей терминальной программе (SecureCRT). Макрос просто "gG".

0
ZMitchell

Если вы не против использования браузера, вы можете запустить веб-сервер Algernon с помощью этой команды:

algernon -a -t /directory/name

Список файлов будет отображаться и автоматически обновляться по адресу http: // localhost: 3000 /

0
Alexander