大多数、更多和更少之间有什么区别?

Cho*_*Ren 267 command-line less more most

我现在正在使用 Arch Linux,并找到了一个most类似于more和的命令less。了解它们之间的差异是一个令人困惑的问题。问题不是更少吗?提到了less和之间的区别more。你知道色彩表现、捷径和前进和后退能力的差异吗?

小智 329

更多的

more是一个古老的实用程序。当传递给它的文本太大而无法在一个屏幕上显示时,它会分页。您可以向下滚动但不能向上滚动。

某些系统硬链接moreless,为用户提供了两种程序的奇怪混合,它们看起来像more文件末尾并退出,more但具有一些less功能,例如向后滚动。这是lessmore兼容模式的结果。您可以使用 临时启用此兼容模式LESS_IS_MORE=1 less ...

more默认情况下传递原始转义序列。转义序列告诉您的终端显示哪些颜色。

较少的

less是由一个厌倦了more无法向后滚动文件的人写的。他变成less了一个开源项目,随着时间的推移,不同的人为其添加了新功能。less现在是巨大的。这就是为什么一些小型嵌入式系统有more但没有less. 为了比较,less的源代码超过 27000 行。more实现通常只有 2000 多行。

为了less传递原始转义序列,您必须将-r标志传递给它。您还可以通过将-R标志传递给它来告诉它仅传递 ANSI 转义字符。

有关less更多详细信息,请参阅常见问题解答:http : //www.greenwoodsoftware.com/less/faq.html

最多

most应该超过less. 它可以一次显示多个文件。默认情况下,它会截断长行而不是包装它们并提供左/右滚动机制。大多数网站没有关于most功能的信息。它的联机帮助页表明它至少缺少一些less功能,例如日志文件写入(tee尽管您可以使用)和外部命令运行。

默认情况下,most使用奇怪的非类似 vi 的键绑定。man most | grep '\<vi.?\>'不返回任何内容,因此可能无法most进入类似 vi 的模式。

most能够在阅读之前解压缩 gunzip 压缩文件。它的状态栏比 有更多的信息less

most 默认情况下传递原始转义序列。

  • “`less` 是更多,但是更多的`more` 比`more` 多,所以`more` 是更少的`less`,所以如果你想要更少的`more`,就使用更多的`less`。(...) 如果`less` 多于`more`,则`most` 多于`less`。” ——Slackware Linux 精要 (287认同)
  • 我的头……所有这些双关语…… (66认同)
  • @AlberteRomero 就是这样,或多或少,至少大部分是这样。大声笑我最喜欢水平滚动。 (9认同)
  • 等你看到`notquite` (9认同)
  • 我只是尝试了 `most`,因为它很好地为手册页着色,但是我认为它不支持正则表达式搜索。此外,为了获得 *vi-like* 键绑定而不得不使用 `~.mostrc` 文件让我想要 `less`。有时`less` 比`most` 多:) (4认同)
  • @JonasWielicki 完成:https://unix.stackexchange.com/questions/271251/is-there-any-way-of-changed-most-keybindings-to-something-more-familiar/271252#271252 (3认同)
  • @JACorbal 太棒了。我在公共场合读到这篇文章,笑得停不下来。我周围没有人会得到它。所以我只是不停地笑“更多”。 (3认同)

小智 52

简短的回答:

只需使用less并忘记more

更长的版本:

more 是旧的实用程序

你不能用more来逐级浏览,你可以用空格来逐页浏览,或者一行一行地输入,就这样。

lessmore+ 更多附加功能

您可以明智地浏览页面,向上和向下逐行,搜索


小智 18

有一个单一的应用程序,其中我比较喜欢moreless

要检查我最新修改的日志文件(在 中/var/log/),我使用 ls -AltF | more.

虽然less有退出后删除画面qmore从而使这些文件和目录列出ls在屏幕上,饶恕我记住他们的名字进行检查。

(如果有人知道可以less在退出后保留其文本的参数或配置,这将使这篇文章过时。)

  • 你想要的参数是`-X`(长格式:`--no-init`)。来自“less”手册页:“禁止将 termcap 初始化和取消初始化字符串发送到终端。如果取消初始化字符串做了一些不必要的事情,比如清除屏幕,这有时是可取的。` (26认同)

Pre*_*raj 11

moreless并且most是用于查看文本文件的内容的终端的寻呼机或寻呼程序。

更多: more是一个非常基本、最古老和流行的寻呼机。more最初只允许向前浏览文件,但较新的实现确实允许有限的向后移动。即more可以在文本文件中向前和向后移动,但不能在管道中向后移动。

less: less是一种更高级的寻呼机,允许向前和向后移动,并包含搜索等额外功能。 less在开始之前不必读取整个输入文件,因此对于大型输入文件,它比文本编辑器(如vi.

less超过moremost超过less。而其他寻呼机一次只能显示一个文件,但大多数都能够查看任意数量的文件,

  • `most` 不仅仅是 `less` 仅适用于某些功能,例如分屏(并在拆分时显示不同的文件),但也有只有 `less` 可以执行的功能,例如过滤器(请参阅下面我的评论) (2认同)

ewe*_*sot 11

概括

moreless并且most是三个寻呼机,我们可以这样比较它们:

less多于more
most多于more,近似地
lessmost不同,没有一个更好。

更多的

  • more 是一个非常基本的寻呼机,您几乎可以在其中配置任何内容。
  • 默认是 Vim 键绑定,你不能改变它们。
  • 有时您必须使用more并且不能使用另一个寻呼机,例如在长输出(如:highlight)中vim,您可以使用set more,但您不能set lessset most相反。实际上,我不确定是否vim使用 true,more因为缺少搜索等某些功能。
  • 它支持颜色(它可以在不能显示的地方显示 256 色输出most)。
  • 你会很容易退出,有时是偶然的,例如,如果你搜索一个模式,但没有找到,more退出(less并且most不要那样做)。

较少的

  • less基于more,具有额外的功能。
  • 快捷方式也是基于 Vim 的,但它们可以改变(它们以一种奇怪的方式改变lesskey)。
  • 可以使用类似的编辑器编辑文件Vim(这意味着您可以morevimin less)。
  • 有一个环境变量被称为LESS_IS_MOREmake 的less行为大多像more.

最多

  • most不是less或的改进more,它是具有相似但不相同行为的不同软件。
  • 它并不总是默认安装。
  • 也可以用编辑器编辑文件。

大多数 VS 较少

双方lessmost有特点的是,其他的都不用。我有时会看到,就像在这个网站上

如果少即是多,那么大多数就是多于少。

或者在这个帖子上:

大多数:少即是多,大多数是多于少。其他寻呼机一次只能显示一个文件,而大多数寻呼机都可以查看任意数量的文件

实际上,您可以less使用以下命令加载多个文件less foo bar:它会显示文件,foo但您可以bar使用命令查看:n

少能做什么,大多数不能做什么

  • 正则表达式搜索,使用/. 实际上,most的手册说搜索例程“使用正则表达式”,但我不确定有没有办法使用它们(手册没有解释如何使用)。
  • 用 反转搜索方向N。使用most,唯一的方法是再次执行最后一次搜索,?然后您只能向后移动)。
  • 过滤器,用&: 只显示匹配的行。它有点像 ,grep但你保留了以前使用的相同快捷方式。
  • 类似 Vim 的标记:您可以在文本中为每个字母标记一个位置。most只有一个标记,因此您可能会most意外丢失标记(用另一个文本位置覆盖它)。
  • 半屏滚动。most只有向上翻页和向下翻页。如果您的屏幕可以看到 30 行,并且您想同时看到第 20 行和第 40 行的重要内容,则可以使用半屏滚动来完成,但不能仅使用屏幕滚动。它可能看起来有点无关紧要,但事实并非如此,在阅读了大量联机帮助页后,我可以看到不同之处(我还在 Vim 中映射了一个类似的功能,而不是“行内搜索字母”(默认为ft))。
  • 转到匹配 () {} [] 或您要定义的任何匹配项。
  • less的手册中most的信息多于的手册(1102+300 行与 270 行,取决于终端大小)。
  • less可以显示(至少)256种颜色,并且most只能显示8种颜色。
  • less还可以使用例如 显示粗体、闪烁等文本格式\e[5mmost但不能。

大多数能做而少不能做的

  • 垂直分屏(只能将屏幕一分为二,不能调整大小,可以做几次)。
  • 使用单个配置文件对其进行配置。
  • 二进制模式,看起来像xxd.
  • 使用most,默认情况下您有手动颜色。对于less,有一种方法可以执行相同的操作,但这不是默认行为。这可能是一些人认为less不能做同样事情的原因。如果您仍然想most成为您的联机帮助页,那么请执行export MANPAGER=most.