Não há nada embutido para encontrar, até mesmo o GNU encontrar. Você pode pós-processar a saída de find para classificar por número de barras, por exemplo, com Perl:
find ... | perl -e 'print sort {$a=~s!/!/! <=> $b=~s!/!/!} <>'
-
<>é a lista de todas as linhas de entrada; -
$a =~ s!/!/!gé o número de barras em$a, que usamos como critério de classificação.
Se você pode usar zsh:
echo **/*(oe\''REPLY=${REPLY//[^\/]}'\')
-
**/*lista todos os arquivos no diretório atual e nos subdiretórios. - O material dentro dos parênteses é um qualificador glob.
- O qualificador glob
oecontrola a ordem em que as correspondências são retornadas: elas são classificadas pelo valor deREPLYapós a execução do código aqui entre aspas para cada correspondência comREPLYinicialmente definido para o caminho correspondente. / li> - Esse código transforma
$REPLYpara excluir tudo, exceto barras. Então o resultado consiste em tudo na profundidade 1 (vazio resultante$REPLY), então tudo na profundidade 2 ($REPLYacaba sendo/), profundidade 3 (//), etc.