it-swarm.cn

有没有一种方法可以动态刷新less命令?

我喜欢watch命令,但是它有 其局限性

我很好奇我是否可以用watch模仿less的功能。我主要是在寻找能够通过运行脚本动态修改目录的能力。

146
Zaid

less中,您可以键入F以继续读取文件末尾(例如tail -f);您可以输入:e和文件名来查看其他文件,但是不幸的是,如果输入当前文件的名称,则less不会重新加载该文件。但是,有一种技巧可以使它重新读取当前文件,由 sabgenton 建议:键入:e并输入不存在的文件的名称;导致较少显示错误消息,然后重新加载当前文件。

如果您正在寻找watch ls的替代方法,请参考以下几种方法:

  • 现代文件管理器(例如Nautilus,Thunar,Konqueror,Dolphin,Finder)实时刷新视图。
  • Emacs没有实时刷新,但是使用auto-revert-mode,它将每5秒钟重新加载文件或目录(延迟是可配置的)。
  • 尽管w3m主要是Web浏览器,但它使目录和文本文件查看器成为可传递的目录。按R重新加载(本地)URL。
130

Shift+F 将使lesstailf类似。也就是说,如果将更多数据附加到文件,它将刷新。

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

运行less时的“ F”键将执行类似于tail -f的“跟随”操作,但是我不确定这是否可以实现您在此处寻找的功能。

5
Dave Jennings

我通常只是输入 G 一次拖尾输出。我发现它在像CIFS这样的网络文件系统上特别有用。

5
jorb

用于重绘的R并不总是重新加载文件。[1]

始终重新加载文件的解决方法是按hq,这将打开“帮助”页面,然后退出。它具有强制重新加载文件的副作用。


[1]以下是R进行和不进行重新加载的情况的一些示例:

  • >>>更改:请重新加载
  • sed -i,gEdit,TextEdit:请勿重新加载
  • 在Linux上,vi更改:请重新加载
  • 在Mac上,vi更改:请勿重新加载

我相信区别在于inode是否更改(您可以使用ls -i foo.txt)。如果inode更改,则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 Web服务器:

algernon -a -t /directory/name

然后将显示文件列表,并自动刷新 http:// localhost:3000 /

0
Alexander