Como combinar ls e grep para listar apenas arquivos e usando ls para contar dirs

2

Eu tenho alguns problemas com a combinação de ls e grep. A única coisa é que eu tenho que usar apenas ls e grep para listar todos os arquivos no diretório home. Eu tentei várias combinações, mas sem efeito. Eu acho que deveria usá-lo como:

ls /home/mydir | grep stomething

A próxima pergunta é (não faço ideia de como fazer isso) como usar o comando ls e outro comando para contar o número de diretórios na pasta principal?

    
por masterllama 27.01.2015 / 05:10

1 resposta

5

Seu uso de ls e grep está correto, o que irá encontrar qualquer resultado na saída ls contendo 'stomething'. Note que olha para toda a linha, não apenas o nome do arquivo (principalmente aplicável ao usar certos sinalizadores com ls, como ls -l etc).

Encontrando diretórios, é melhor usar o find e o wc (wordcount):

find /home/mydir -maxdepth 1 -mindepth 1 -type d | wc -l

Explicação:

  • maxdepth 1, conte até uma profundidade máxima na árvore de 1 (por exemplo, somente dirs, não subdircuitos neste caso)
  • mindepth 1, usado basicamente nesse exemplo para garantir que o find não encontre "." Além disso.
  • digite d, procure por diretórios (-tipo f encontrará arquivos, l encontrará links suaves etc)
  • wc -l, conta as linhas retornadas

Se você executar isso sem o pipe para wc, você obterá uma lista de todos os resultados. Encontrar é um comando muito prático para se familiarizar.

    
por drinxy 27.01.2015 / 05:20