Se sua principal preocupação é o tempo e você deseja listar 10 arquivos, você deve olhar para a opção -U
, que significa listar as entradas sem classificação.
Então você pode fazer:
ls -U
Somente para 10 arquivos, assumindo que não há nomes de arquivo com nova linha (s) ou qualquer caractere incomum :
ls -U | head -10
Um pouco melhor seria fazer isso apenas pelo próprio shell:
printf '%s\n' *
Para 10 arquivos:
printf '%s\n' * | head -10
Aqui está a estatística de tempo no meu sistema para 2000 arquivos no meu zsh
:
( ls --color=auto foobar* | head -10; ) 0.044 total
( ls --color=auto -U foobar* | head -10; ) 0.020 total
( printf '%s\n' foobar* | head -10; ) 0.013 total
Observe também que, algumas delas podem muito bem acionar ARG_MAX
se você tiver muitos arquivos no diretório, nesse caso, o uso precisará usar algumas outras maneiras, como find
ou um loop de shell.