Linha de Comando em Linux: Usando ls + wc + grep para Sabermos Quantidade de Arquivos e Subpastas

Usaremos os comandos ls + wc ou grep para sabermos quantidade de arquivos dentro de uma determinada pasta.

 

Comandos utilizados aqui

  • ls = Para listar conteúdo de diretórios
  • wc = Exibe/conta quantidade de caracteres, palavras, linhas e bytes de um arquivo de texto
  • grep = Exibe/printa na tela linhas  de um texto de acordo com os critérios(filtro) de busca que queremos.
  • Pipe = Pipe(pronuncia-se paipe 🙂 ) nada mais é que a a barra vertical ( | ). Localizado entre as teclas Shift e letra Z do seu teclado

 

Conhecendo a Estrutura da Pasta onde Trabalharemos

Iremos usar a pasta pastaTeste que criei dentro de /home/elder/Downloads com a seguinte estrutura:

./pastaTeste/
├── arquivo01.txt
├── arquivo02.txt
├── dir01
│   ├── texto099.txt
│   └── texto.txt
└── file01.txt

Acima marquei de:

  • Vermelho: pasta principal, dentro da qual trabalharemos
  • Azul: os Arquivos
  • Verde: As pastas dentro da pasta principal

 

A partir daqui,  consideraremos que estaremos dentro da pasta /home/elder/Downloads. 

 

Quantos Itens(ignoraremos o conteúdo das subpastas) há dentro da pasta “pastaTeste”

  1. Execute ls | wc -l.  A opção “-l” do wc serve para contar apenas linhas, neste caso conta as linhas da resposta gerada pelo ls. O pipe serve para passar a resposta do ls para o wc
[elder@serverTeste Downloads]$ ls ./pastaTeste/ | wc -l
4

Temos 4 itens dentro da pasta pastaTeste. Abaixo realço em laranja os itens

./pastaTeste
├── arquivo01.txt
├── arquivo02.txt
├── dir01
│   ├── texto099.txt
│   └── texto.txt
└── file01.txt

 

Quantos Arquivos há Dentro da Pasta “pastaTeste”

Execute o comando  ls -l ./pastaTeste/ | grep “^-” -c . Observe o “-l” no ls e grep “^-” no grep.  O “^-  -c” do grep serve para encontrar linhas de um texto que se iniciam o hífen “-”  e o -c para contar ao invés de exibir as linhas

[elder@serverTeste Downloads]$ ls -l ./pastaTeste/   |  grep "^-"  -c
3

Temos 3 arquivos dentro da pasta pai(pastaTeste); mas uma vez, ignoramos os arquivos da subpasta(dir01). Os marco abaixo de laranja:

./pastaTeste
├── arquivo01.txt
├── arquivo02.txt
├── dir01
│   ├── texto099.txt
│   └── texto.txt
└── file01.txt

 

Quantas Pastas há Dentro da Pasta “pastaTeste”

  1. Execute o último comando executado anteriormente, alterando apenas o hífen (-) no grep por uma letra d
    [elder@serverTeste Downloads]$ ls -l ./pastaTeste/   |  grep "^d"  -c
    1

    Temos apenas uma pasta

    ./pastaTeste
    ├── arquivo01.txt
    ├── arquivo02.txt
    ├── dir01
    │   ├── texto099.txt
    │   └── texto.txt
    └── file01.txt

    Para sabermos quantos arquivos ou pastas há levando em conta subpastas ou toda a estrutura acrescente um -R ao ls

 

Quantos arquivos Há levando em conta tudo, pastas e subpastas

  1. Execute o mesmo comando acima acrescentando apenas o -R ao ls
[elder@serverTeste Downloads]$ ls -Rl ./pastaTeste/   |  grep "^-"  -c
5

Temos 5 aquivos:

./pastaTeste
├── arquivo01.txt
├── arquivo02.txt
├── dir01
│   ├── texto099.txt
│   └── texto.txt
└── file01.txt

 

Quantas pastas Há levando em conta as subpastas

  1. O mesmo comando anteriormente executado, apenas substitua o hífen(-) por uma letra d  no grep e acrescente -R ao ls
[elder@serverTeste Downloads]$ ls -Rl ./pastaTeste/   |  grep "^d"  -c
1

Continuamos com uma só 🙂

./pastaTeste
├── arquivo01.txt
├── arquivo02.txt
├── dir01
│   ├── texto099.txt
│   └── texto.txt
└── file01.txt

 

Bom, é isso aí. Espero que tenha gostado!

Siga-nos em nossas redes:

Link Facebook: https://www.facebook.com/gnulinuxbr

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *