Quero encontrar a contagem total do número de arquivos em uma pasta e todas as suas subpastas.
command-line
find
topless
fonte
fonte
find . -type f -ls | wc -l
find . -type f -print0 | tr -d -c '\0' | wc -c
find . -type f -printf . | wc -c
- Adotei a impressão para a minha solução em vez do meu eco -exec.Use o
tree
comando Pode ser necessário instalar otree
pacote.Ele listará todos os arquivos e pastas na pasta especificada e um resumo no final.
fonte
Para contar arquivos (mesmo arquivos sem extensão) na raiz do diretório atual, use:
Para contar arquivos (mesmo arquivos sem extensão) recursivamente a partir da raiz do diretório atual, use:
fonte
A maneira mais rápida e fácil, é usar
tree
. Sua velocidade é limitada pelo seu terminal de saída; portanto, se você canalizar o resultadotail -1
, obterá um resultado imediato. Você também pode controlar para qual nível de diretório você gosta dos resultados, usando a-L
opção Para saída colorida, use-C
. Por exemplo:Se ainda não estiver lá, você pode obtê-lo aqui .
fonte
Não conte as linhas de saída de localização, porque os nomes de arquivos, contendo 99 novas linhas, contarão como 100 arquivos.
fonte
Use este comando para cada pasta no caminho
fonte
find parece ser mais rápido que a árvore, então usei abaixo para contar arquivos em cada diretório do diretório de trabalho atual (ignorando arquivos no CWD), permitindo que os diretórios tenham espaços:
ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done
fonte
ls
é uma péssima idéia.Você pode usar
find . | wc -l
find .
listará todos os arquivos e pastas e seus conteúdos, começando na sua pasta atual.wc -l
conta os resultados de encontrarfonte
Eu mesmo usaria esta opção:
fonte