如何激活ls命令的分页?


34

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

Answers:


54

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

ls -C | less

-C触发器栏显示。使用lah作为参数(ls -lah)来得到一个一行显示INE有一个显示LL文件(包括隐藏的人),以及^ h乌曼可读的filesizes。

  • 为了使颜色正确显示,您需要在中添加--color=always参数ls,并-R在less *上添加参数:

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

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

与相比moreless您可以在输出中滚动。对于大型列表,它也要快一些。

管道的工作方式如下:

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

  • 一个比较老派的dos将是pg

    ls | pg
    

你也可以

  • 使用ls | headls | 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; };可以接受的论点,$1$2$3等等。$@表示“每个参数,如果有的话”

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


*:这样做的原因是,每当您通过管道传输内容时,它都会检测到一个无法显示颜色的终端(实际上是另一个程序)。“ --color = always”强制ls忽略它。-R开关使重新绘制屏幕的次数减少,可以正确地转义颜色


谢谢,很好的回答,当我看到长长的命令行时,我想到的正是带有别名的部分。创建别名的唯一缺点是无法使用* .pdf之类的通配符过滤器?也许还有解决办法吗?
NES

一切皆有可能;-)我添加了一些论点,我早些时候没有想到。
Stefano Palazzo

2
您给了超出预期的:)感谢您的详细回答。PS,您知道bash和fish之间是否存在差异,从而以某种方式阻止了该别名参数传递方法在fish中工作吗?我得到的别名没有参数选项在这里工作。
NES

1
好的,在这里askubuntu.com/questions/19728/…新的问题开始了,再次感谢您到目前为止的有用回答。
NES

1
$*$@做完全相同的事情。他们扩展到$1 $2 $3 ...。但是,带引号的"$@"扩展为"$1" "$2" "$3" ...while "$*"扩展为"$1 $2 $3 ..."(即,所有参数都放入一个字符串中,使用第一个字符IFS作为分隔符)。mywiki.wooledge.org/BashGuide/Parameters
geirha

3

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

ls | less

并使用q退出。


1

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


1
也许还有另一种方法?因为对我来说,缺点是使用管道时外壳的着色不活跃?
NES

2
试试ls --color=always -C | less -R
FUZxxl 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.