ZSH: Globeando os primeiros N arquivos sob um caminho em ordem lexicográfica

7

Eu queria saber se existe uma maneira de especificar os primeiros N arquivos em um determinado diretório em zsh.

Estou interessado em soluções para enumeração recursiva (ou seja, qualquer arquivo recursivamente abaixo de um caminho é considerado para a enumeração) e não recursivo (apenas os arquivos estritamente sob uma determinada pasta são considerados).

Obrigado!

    
por Amelio Vazquez-Reina 29.08.2011 / 20:33

1 resposta

11

É o zsh, então, de fato, há um qualificador para isso.

echo *([1,42])         # The first 42 files in the current directory, in lexicographic order
echo **/*([1,42])      # The first 42 files in a depth-first traversal
echo **/*(od[1,42])    # The first 42 files in a breadth-first traversal

Outros qualificadores que podem ser úteis, por exemplo, a seguinte expressão inclui arquivos de pontos ( D ), restringidos a arquivos regulares ( . ) e links simbólicos ( - ) a arquivos regulares e expandidos para um vazio lista se não houver correspondência ( N ):

echo *(-.DN[1,42])
    
por 29.08.2011 / 22:32

Tags