Como obter informações para procurar arquivos em ordem alfabética?

4

Eu estou querendo saber se existe uma maneira de executar o comando find e fazê-lo percorrer os diretórios (recursivamente) em ordem alfabética (ou em ordem inversa)? Eu tenho um monte de diretórios com nomes representando alguma ordem e muitas vezes eu preciso encontrar o mais antigo (ou o último) com base no nome do diretório.

Há perguntas e respostas sobre como classificar os resultados retornados por find (veja abaixo). No entanto, estou interessado em saber se existe uma maneira de fazer com que find execute a pesquisa em ordem alfabética, porque seria muito mais eficiente do que percorrer todo o processo e depois classificar.

Idealmente, eu posso especificar o comando para parar depois que n ocorrências forem encontradas, mas isso é secundário porque eu também posso parar o comando manualmente.

Como obtenho arquivos encontrados pela linha de comando 'find' ordenada pela data de modificação no OS X? link

    
por ceiling cat 21.09.2017 / 17:05

2 respostas

1

A ordem de listagem de diretório de

find é dada pela ordem das entradas armazenadas no sistema de arquivos.

Você pode considerar escrever um script bash que vá para cada diretório e liste os arquivos necessários.

    
por 21.09.2017 / 17:54
0

Você pode tentar:

find -type d -maxdepth 1 | sort -h | xargs find

find -type d -maxdepth 1 lista diretórios, sem recursão. Nós direcionamos a saída para sort -h , para classificar os resultados de maneira centrada no ser humano. A lista classificada de diretórios é enviada para xargs , que os utiliza como argumentos da linha de comando para o% final find , aquele que faz a maioria do trabalho.

Eu sei que você queria evitar a ordenação, mas o AFAIK, find vai passar pelo sistema de arquivos pela ordem do sistema de arquivos.

Espero que isso ajude.

    
por 22.09.2017 / 06:09

Tags