Navegue até a sua unidade e simplesmente execute
ls -lR | grep ^d | wc -l
Eu preciso organizar um disco rígido externo de modo que não haja mais de 500 pastas nele. O painel "Propriedades" do Ubuntu mostra apenas a contagem de arquivos, não a contagem de pastas.
Existe uma linha de comando simples que me informará o número de subdiretórios?
Eu preciso contar recursivamente, e a unidade é um disco rígido externo montado em /media/MUSIC/
.
É para um sistema de som do carro cuja documentação diz que só lê as primeiras 500 pastas.
Encontre todas as pastas no total, incluindo os subdiretórios?
find /mount/point -type d | wc -l
... ou encontra todas as pastas no diretório raiz (sem incluir subdiretórios)?
find /mount/point -maxdepth 1 -type d | wc -l
Novas linhas são caracteres válidos em nomes de diretório. Sugiro deixar find
imprimir uma linha vazia para cada diretório encontrado e, em seguida, deixar wc
contar essas linhas.
find /mount/point -type d -printf '\n' | wc -l
Tente o seguinte [veja abaixo]:
ls -1 -p | grep "/" | wc -l
Isso imprimirá uma lista de uma coluna do diretório atual, com barras no final dos itens que são subdiretórios, e contará as linhas com as barras.
EDIT: você provavelmente deve ir com a resposta do quack quixote, já que é um pouco mais explícito, mas eu corrigi o meu (depois de levar em conta as sugestões do quack).
ls -Rp | grep "/$" | wc -l
Eu escrevi ffcnt para acelerar a contagem recursiva de arquivos em circunstâncias específicas: discos rotacionais e sistemas de arquivos que suportam mapeamento de extensão.
Pode ser uma ordem de magnitude mais rápida do que do que as abordagens baseadas em ls
ou find
Quando há um grande número de diretórios, ferramentas como tree
podem levar uma eternidade para serem concluídas ou até interrompidas, portanto, talvez você queira usar algo mais eficiente.
A maneira mais eficiente de contar os diretórios em que posso pensar seria a seguinte, pois find
imprimirá apenas um .
para cada pasta encontrada em vez do caminho e nome de arquivo completos e wc
precisará apenas iterar sobre o número de caracteres:
find /mount/point -type d -printf '.' |wc -c
Para excluir /mount/point
do cálculo e contar apenas os subdiretórios:
find /mount/point -mindepth 1 -type d -printf '.' |wc -c
Eu achei du --inodes
útil, mas não tenho certeza de qual versão de du
é necessária. No Ubuntu 17.10, os seguintes trabalhos:
du --inodes # all files and subdirectories
du --inodes -s # summary
du --inodes -d 2 # depth 2 at most
Combine com | sort -nr
para classificar em ordem decrescente pelo número de inodes contendo.
Eu gosto de usar a árvore para extrair a contagem de diretórios com
tree -d -R -fi --noreport | wc -l
Ou, use mal achado para mostrar a maior parte das pastas estão localizadas com
find . -type d -printf "%h\n" | cut -d/ -f-2 | sort | uniq -c | sort -rn
Para encontrar o número de pastas e diretório no diretório atual
Digite o seguinte comando no seu terminal
echo */ | wc
Tags command-line linux