![如何在 watch 命令的输出中滚动?](https://linux22.com/image/41997/%E5%A6%82%E4%BD%95%E5%9C%A8%20watch%20%E5%91%BD%E4%BB%A4%E7%9A%84%E8%BE%93%E5%87%BA%E4%B8%AD%E6%BB%9A%E5%8A%A8%EF%BC%9F.png)
我使用该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 运行时,按下?
可获取键盘快捷键。
viddy
cmd选项:
$ 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)