Confusão em relação a subdiretórios?

2

Tenho uma pergunta para count e exibo number de sub-directories incluindo os ocultos ( invisible sub-directories ) recursivamente. Eu posso exibir sub-diretórios recursivamente, mas estou confuso com os subdiretórios invisíveis. Além disso, só posso usar o comando ls e wc para a solução. Por favor, não sugira o comando 'find' Eu tenho que usar apenas o comando ls e wc .

Até agora eu tentei os seguintes comandos.

ls -1 | wc -l

ls -R | wc -l

ls -R | wc -c

ls -aR | wc -l

ls -aR | wc -c

Mas ainda não encontrei a solução. Você pode por favor me esclarecer.

    
por Narwen 17.11.2013 / 16:04

3 respostas

1

Uso:

ls -lAR | grep '^d' | wc -l

Mas você deve ter em mente: nunca analisa a saída de ls ! Neste caso, é melhor usar find como em esta resposta .

Veja também man ls para entender por que usei as opções -l , -A e -R .

    
por Radu Rădeanu 18.11.2013 / 10:39
2

Acabei de reler as perguntas e notei que não deseja usar o find.

Encontrei dois que parecem dar a resposta correta:

O primeiro é:

ls -lR | grep ^d | wc -l

O segundo é:

ls -Rp | grep "/$" | wc -l
    
por cprofitt 17.11.2013 / 16:10
0

Na minha experiência, find é uma ferramenta melhor para pesquisar arquivos ou diretórios - especialmente de forma recursiva e incluindo nomes de arquivos de ponto.

find -mindepth 1 -type d | wc -l

Você pode otimizar um pouco, se você escrever e contar apenas caracteres individuais para cada partida:

expr $(find -mindepth 1 -type d -printf 1 | wc -c) - 1

Se você quiser incluir o diretório de trabalho no resultado, defina -mindepth para 0 (ou omita).

    
por David Foerster 17.11.2013 / 16:11