Como eu consigo colocar as pastas em ordem crescente de acordo com a quantidade de arquivo dentro delas no terminal, mostrando a quantidade de arquivos?
EX:
20 pasta1
30 pasta2
50 pasta3
...
Para listar as pastas em ordem crescente de acordo com a quantidade de arquivos dentro delas no terminal, você pode usar o comando `ls` com a opção `-l` e `sort`. Aqui está um exemplo de como fazer isso:
- `ls -l`: lista os arquivos e diretórios com detalhes
- `grep '^d'`: filtra apenas as linhas que são diretórios
- `awk '{print $9, system("ls -l " $9 " | wc -l")}'`: para cada diretório encontrado, imprime o nome do diretório seguido da quantidade de arquivos dentro dele
- `sort -nk2`: organiza em ordem crescente pela quantidade de arquivos
Dessa forma, você terá a lista das pastas em ordem crescente de acordo com a quantidade de arquivos dentro delas. Espero ter ajudado!
Como eu consigo colocar as pastas em ordem crescente de acordo com a quantidade de arquivo dentro delas no terminal, mostrando a quantidade de arquivos?
EX:
20 pasta1
30 pasta2
50 pasta3
...
Boa tarde, segue sugestão:
ls -lR /diretorio/|awk 'BEGIN{RS="\n\n";FS="\n";}{N=0;D=0;for(n=1;n<=NF;n++) if($n~/^-/) N++;}{printf "%02d:%s\n",N,$1}'|sort -t':' -nrk2
Como funciona:
ls -lR, lista no formato:
diretorio/
....
(conteúdo, incluindo dirs)
diretorio/dir01
....
..... awk 'BEGIN{RS="\n\n";FS="\n";}:
Define os "registros", separados por uma linha vazia, com um campo por linha. {N=0;for(n=1;n<=NF;n++) if($n~/^-/) N++;}
Define var N=0 (em cada laço),
Percorre os campos de cada registro, e,
Conta somente arquivo comum, (N++) {printf "%02d:%s\n",N,$1}'|sort -t':' -nrk2
Imprime e ordena pela quantidade de arquivos.
#----------------------------------------------------------#
É isso, testado e funcionando a contento. [Debian 12.5]
______________________________________________________________________ Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/udou.$/s/^[ ]+//p'
______________________________________________________________________ Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________