如何激活ls命令的分页?

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

ls本身没有简单的等价物,但实用性less ,它会将任何命令的输出格式化为单独的页面,可以按行或页面滚动:

  ls -C | 减 

其中-C触发列显示。 使用lah作为参数( ls -lah )来逐行显示ll文件显示(包括隐藏的文件),以及可读的文件大小。

  • 要使颜色正确显示 ,您需要将--color=always参数添加到ls ,并将-R参数添加到less *:

      ls -C --color = always | 少-R 

    替代文字
    这显示’ls -ah –color = always | 少-R’

与之相反, less会让您滚动输出。 对于非常大的列表,它也快一点。

管道的工作方式如下:

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

  • 一个更老派的dos等价物将是pg

     ls | pg 

你也可以

  • 使用ls | head ls | headls | tail ls | tail只显示输出的第一个或最后一个部分
  • 使用watch "ls"保持显示屏打开,每隔几秒更新一次以观察更改
  • 如果你坐在离屏幕很远的地方,请使用banner $(ls) 。 (;

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

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

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

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

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

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

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

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

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


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

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

 ls | less 

并使用q退出。

试试ls | less ls | lessls | more ls | more 。 第二个接近DOS版本。