我正在大学参加 Linux 简介课程。我们的老师希望我们展示一个可用于此问题的命令:
“使用提供逐行导航的分页控件显示文件的内容。”
他说唯一正确的答案是“少”。但“少”和“多”难道不能以同样的方式运作吗?您可以逐行(Enter)或逐页(空格),两者都正确吗?
编辑:
我想我应该问是否更多的和较少的(抱歉,我不确定如何像其他海报一样格式化这些文字和图像)可以以相对相同的方式进行操作,因为它们都可以逐行或逐页浏览文件或目录(全屏在一次)。我认为他们要么可以,要么不能。
根据我的经验,阅读(我有一本 Linux+ 书,其中也指出它们可以进行相同的操作)和评论,例如安东尼的,看来它们都以这种方式运作。
答案1
我不认为老师的问题对于学习 Unix 的人来说特别有用——他们期望的答案更不那么有用。该less
实用程序广泛用于现代类 Unix 操作系统,但实际上并不是 POSIX 强制要求的。另一方面,more
效用是由 POSIX 指定– 该规范包括逐行导航。
POSIX 描述more
为一个实用程序“逐页显示文件”但它的扩展描述描述逐行导航功能,例如,向前滚动一行。就其价值而言,more
我个人使用过的任何实现都只允许Enter按一次向前滚动一行(因此不完全符合 POSIX)。
请注意,在某些系统上,more
可以符号链接到less
可执行文件。在这种情况下,less
模拟more
命令(由 POSIX 指定)。您可能认为您正在运行more
- 但实际上,您正在运行less
(也可以通过将环境变量设置LESS_IS_MORE
为 1 来实现此模拟)。您可以通过在查看文件时按, ie ,然后按 来判断您是否确实less
在此兼容模式下运行。这将打印if running in的版本号,例如,在(大多数实现)中,它将不执行任何操作。-V
-ShiftVless
less
less 481
more
答案2
More
只能向前移动,但less
也可以向后移动到文件的开头。
答案3
Less
命令只是将您在终端中看到的内容缓冲到内存中。但more
命令会将文件的所有内容缓冲到内存中,然后显示内容。它们之间唯一但确实很大的区别。越少越好:)
答案4
使用more
,您可以向后导航:使用 进行“逐行”导航k
或使用 进行“逐页”导航b
。