Preciso organizar um disco rígido externo para 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 diga 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 automotivo cuja documentação diz que apenas lê as primeiras 500 pastas.
linux
command-line
Dean Rather
fonte
fonte
grep -c
over thewc -l
. Talvez seja só eu.\nd
(onde\n
está o caractere NL).ls
produção não deve ser canalizada . Além disso, este será muito mais lento, porque tem de saída de toda a árvore e, em seguida, executar grep através deleLocalizar todas as pastas no total, incluindo subdiretórios?
... ou encontrar todas as pastas no diretório raiz (sem incluir os subdiretórios)?
fonte
*foo*
em itálico: foo )find /path -not -iname '*.mp3' | wc -l
a MP3s de filtro, ou para obter ambos os MP3s e uso WAVsfind /path -not -iname '*.mp3' -not -iname '*.wav' | wc -l
Novas linhas são caracteres válidos nos nomes de diretório. Sugiro deixar
find
imprimir uma linha vazia para cada diretório encontrado e depoiswc
contar essas linhas.fonte
Tente o seguinte [veja abaixo]:
Isso imprimirá uma lista de uma coluna do diretório atual, com barras finais para itens subdiretórios, e depois contará as linhas com as barras.
EDIT: você provavelmente deve concordar com a resposta do quack quixote, pois é um pouco mais explícita, mas eu corrigi a minha (depois de considerar as sugestões do quack).
fonte
-1
pois o ls detectará o canal e não formatará as colunas. você também pode pegar listagens recursivas com-R
, mas provavelmente deseja grep para"/$"
corresponder apenas as barras finais (ou a contagem será desativada). versão final:ls -Rp | grep "/$" | wc -l
.
(ou seja/mount/point
) em sua contagem, a versão ls no meu comentário acima não. essas contagens diferem por 1, embora você possa usar/mount/point/*
o comando find para corrigir isso (assumindo que não haja diretórios de pontos ocultos).Escrevi ffcnt para acelerar a contagem recursiva de arquivos sob circunstâncias específicas: discos rotacionais e sistemas de arquivos que oferecem suporte ao mapeamento de extensão.
Pode ser uma ordem de magnitude mais rápida do que
ls
oufind
abordagens baseadasfonte
Quando há um grande número de diretórios, ferramentas como
tree
podem levar uma eternidade para terminar ou até travar, portanto, você pode 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 completo e do nome do arquivo, ewc
só precisará percorrer o número de caracteres:Para excluir-
/mount/point
se do cálculo e contar apenas os subdiretórios:fonte
Eu achei
du --inodes
útil, mas não tenho certeza de qual versãodu
requer. No Ubuntu 17.10, o seguinte funciona:Combine com
| sort -nr
para classificar decrescente pelo número de inodes contendo.fonte
Eu gosto de usar a árvore para puxar a contagem de diretórios com
Ou, use mal o find para mostrar que grande parte das pastas está localizada com
fonte
Para encontrar o número de pastas e diretório no diretório atual
Digite o seguinte comando no seu terminal
fonte