当前位置: 首页>>技术问答>>正文


如何激活ls命令的分页?

, ,

问题描述

用于激活分页的ls命令的等效选项是什么,如在DOS中dir /p那样?

最佳解决思路

ls本身没有直接的等价物,但是有less实用程序,它将任何命令的输出格式化为单独的页面,可以按行或页面滚动:ls -C | less

-C触发列显示的位置。使用lah作为参数(ls -lah)以逐行显示所有正在显示的文件(包括隐藏的文件)和人类可读的文件大小。

  • 要使颜色正确显示,您需要将--color=always参数添加到ls,将-R参数添加到less *:ls -C --color=always | less -R这将显示’ls -ah –color = always |少-R’

    command-line,ls,ubuntu

more相比,less可以让您滚动输出。对于非常大的列表,它也快一点。

管道的工作方式如下:

每个程序都有输入和输出,管道将一个程序(ls)的输出重定向到另一个程序的输入(less)。而不是简单地期望它然后格式化的输入。

  • 更多old-school dos等效物将是pg

    ls | pg
    

你也可以

  • 使用ls | headls | tail仅显示输出的第一个或最后一个部分

  • 使用watch "ls"保持显示屏打开,每隔几秒更新一次以观察更改

  • 如果你坐在离屏幕很远的地方,请使用banner $(ls)。 (;


  • 如果您发现所有这些都太长而无法记住,您可以为它设置alias

    使用文本编辑器打开~/.bash_aliases并添加如下内容:

    alias lsp="ls -ah --color=always | less -R"
    

    (这是每次启动新虚拟终端时运行的脚本,您应该在那里设置所有永久别名)

    现在您只需键入lsp或您选择的任何名称即可。

    如果您希望能够将更多参数传递给别名,我们需要定义一个函数:

    lsp(){ ls -ah --color=always "$@" | less -R; }
    

    一个函数,主要看起来像这样:name(){ commands; };可以接受参数,$1$2$3等。 $@表示“每个参数,如果有的话”。

    您现在可以运行lsp *.pylsp -C等内容。我们将参数插入到传递给ls的位置。如果它是重要的命令,我们也可以插入$ * for less。您可以在man ls上看到所有ls的参数(值得一读)。


*:原因是,无论何时管道,它都会检测到一个终端(实际上是另一个程序)无法显示颜色。 “–color=always”强制ls忽略这一点。 -R开关可以更好地重新绘制屏幕escaping the colours

次佳解决思路

我不确定是否有一些ls命令用于分页。但是,您可以使用管道和less,如下所示:

ls | less

并使用q退出。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/3012.html,未经允许,请勿转载。