Meu sistema de arquivos Linux possui dezenas de milhares de arquivos por diretório. Visualizar uma lista de todos os arquivos leva alguns minutos para o meu sistema calcular, o que é muito lento. Mas não tenho certeza de quais arquivos estão em cada diretório, por isso, quero exibir uma lista dos primeiros, como o que o comando head faz para arquivos grandes. Existe um comando que faça isso com eficiência?
Editar: canalizar ls para outra coisa não é bom porque ls leva alguns minutos para ser concluído antes de canalizar a saída. Eu preciso de um comando que retorne apenas os primeiros registros.
Respostas:
Tente o
ls -f
que não classifica.fonte
ls -f | sort | less
é muito mais rápido! Loucura.Para cada um dos diretórios, você pode fazer o seguinte por um script de shell
Tente isso, isso fornece uma página cheia de entradas
Você pode enviar isso para algum arquivo, se desejar, para consultá-lo mais tarde, para que use este
obrigado
fonte
more
utilizado pouco antes um redirecionamentoless
usá-lo em vez demore
Se você quiser listar N primeiras entradas, eu apenas criaria um pequeno programa C que faz uma chamada aberta e depois N chama o readdir
fonte
Depende do sistema de arquivos, mas geralmente é mais rápido listar apenas os nomes de arquivos (observe o objeto do diretório) versus todos os metadados do arquivo (salva uma estatística () por arquivo).
Você já tentou
ls -R
?Caso contrário, pode ser necessário executar o programa de localização GNU em segundo plano periodicamente e usar o banco de dados gerado para rastreá-lo.
fonte
Você pode usar
head
:fonte