如何在 watch 命令的输出中滚动?

如何在 watch 命令的输出中滚动?

我使用该watch命令查看目录内容在脚本运行时发生的变化(通过watch ls dir/

这是一个很棒的工具,只不过一旦条目数量填满屏幕的垂直长度,我似乎无法向下或向上滚动以查看所有内容。

有没有办法做到这一点?

答案1

watch很棒,但这是它不能做的事情之一。您可以用来tail显示最新条目:

watch "ls -rtx dir/ | tail -n $(($LINES - 2))"

答案2

我创建了一个小程序,它可以完全满足您在 python 中的需求。找到它这里,它被称为pwatch

答案3

你可以使用观察者蟒蛇包;其用法与手表相同。

sudo pip install watchall

答案4

您可以使用viddy

它是一个二进制文件,具有原始 watch 命令的基本功能,包括颜色输出和差异突出显示,但允许滚动,并具有一些更酷的功能,包括文本搜索和时间机器模式,允许返回到以前版本的输出。

目前安装它的单行是

wget -O viddy.tar.gz https://github.com/sachaos/viddy/releases/download/v0.3.6/viddy_0.3.6_Linux_x86_64.tar.gz && tar xvf viddy.tar.gz && sudo mv viddy /usr/local/bin

然后你可以像这样使用它

viddy -d -n 1 ls dir/

每秒列出目录并突出显示更改。当 viddy 运行时,按下?可获取键盘快捷键。

viddycmd选项:

$ viddy -h

Usage:
 viddy [options] command

Options:
  -b, --bell                 ring terminal bell changes between updates
  -d, --differences          highlight changes between updates
  -n, --interval <interval>  seconds to wait between updates (default "2s")
  -p, --precise              attempt run command in precise intervals
  -c, --clockwork            run command in precise intervals forcibly
  -t, --no-title             turn off header
  --shell                    shell (default "sh")
  --shell-options            additional shell options
  --unfold                   unfold command result
  --pty                      run on pty (experimental, not for Windows)

相关内容