Como ativar a paginação para o comando ls?

33

Qual é a opção equivalente para o comando ls ativar a paginação, pois no DOS o dir /p faz?

    
por NES 02.01.2011 / 14:25

3 respostas

52

Não há equivalente direto em ls em si, mas existe a less utilidade , que formatará a saída de qualquer comando como páginas separadas, roláveis por linha ou página: %pr_e%

Em que -C aciona a exibição da coluna. Use lah como argumentos ( ls -lah ) para obter um l ine por exibição de linha com a ll arquivos sendo exibidos (incluindo os ocultos) e h uman arquivos legíveis.

  • Para que as cores sejam exibidas corretamente , você precisa adicionar o argumento --color=always a ls e o argumento -R em menos *:

    %pr_e%


    mostra'ls-ah--color=sempre|menos-R'

Emcontrastecom more , less permite percorrer a saída. Também é um pouco mais rápido para listagens muito grandes.

O canal funciona assim:

Todo programa tem entrada e saída, um canal redireciona a saída de um programa (ls) para a entrada de outro programa (menos). E menos simplesmente espera a entrada que formata.

  • Um equivalente mais antigo seria pg :

    ls -C | less

Você também pode

  • Use ls | head ou ls | tail para exibir apenas a primeira ou a última parte da saída
  • Use watch "ls" para manter a tela aberta, atualizando-a a cada poucos segundos para assistir às alterações
  • Use banner $(ls) se você estiver muito longe da tela. (;
  • Se você achar isso muito longo para lembrar, poderá configurar um alias para isso:

    Abra ~/.bash_aliases com um editor de texto e adicione algo assim:

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

    (este é um script que é executado toda vez que um novo terminal virtual é iniciado, você deve configurar todos os seus alias permanentes lá)

    Agora você pode digitar lsp ou qualquer outro nome escolhido.

    Se você quiser transmitir argumentos adicionais ao seu alias, precisamos definir uma função :

    ls | pg
    

    Uma função, principalmente com esta aparência: name(){ commands; }; pode aceitar argumentos, $1 , $2 , $3 e assim por diante. $@ significa "todos os argumentos, se houver" .

    Agora você pode executar algo como lsp *.py , lsp -C e assim por diante. Nós inserimos os argumentos no ponto em que são passados para ls. Também poderíamos inserir $ * por menos, se fosse o comando importante. Você pode ver todos os argumentos de ls em man ls (vale a pena ler).

*: A razão para isto é que sempre que você Pipe algo, ele detecta um Terminal (na verdade o outro programa) não capaz de exibir cores. "--color = always" força o ls a ignorar isso. A opção -R faz menos redesenhar a tela, escapando as cores corretamente.

    
por Stefano Palazzo 02.01.2011 / 14:42
3

Não tenho certeza se existe algum comando ls para paginação. No entanto, você pode usar um canal e less , assim:

ls | less

e use q para sair.

    
por Ragnar123 02.01.2011 / 14:29
1

Experimente ls | less ou ls | more . O segundo é próximo da versão do DOS.

    
por FUZxxl 02.01.2011 / 14:28