5 maneiras de contar arquivos em um diretório no Linux
Cansado de contar arquivos manualmente? Conte todos eles automaticamente, inclusive os ocultos.
Principais conclusões
- O comando “ls” no Linux lista arquivos e diretórios. Canalizá-lo para "wc -l" conta o total de arquivos e diretórios, incluindo os ocultos.
- O comando “tree” exibe toda a estrutura de diretórios recursivamente e resume a contagem de arquivos no final. Adicionar a opção “-a” também exibe arquivos ocultos.
- O comando “find” com opções como -type, -minprofundidade e -maxprofundidade pode contar recursivamente arquivos e diretórios. Use “-type f” para contar apenas arquivos e “-type d” para contar apenas diretórios.
Trabalhando com sistemas operacionais como Linux, gerenciar arquivos é uma das tarefas fundamentais. Se você é um administrador Linux, imagine a contagem de arquivos com a qual terá que lidar. E se seus arquivos consumirem muito espaço em disco, será um osso duro de roer. Vamos discutir algumas maneiras de contar esses arquivos, incluindo os incômodos arquivos ocultos.
Por que precisamos contar arquivos no Linux?
Se você for um administrador do Linux ou estiver apenas começando com os comandos do Linux, eventualmente precisará contar os arquivos em um diretório do Linux. Você pode precisar liberar espaço em seu sistema, planejar o backup dos arquivos do sistema e estimar a quantidade de dados a serem copiados ou simplesmente querer manter seus arquivos organizados. É uma tarefa que todo usuário Linux precisa saber fazer.
Suponha que durante o trabalho seu sistema fique sem inodes. De repente, você enfrenta o temido erro “Não há espaço no dispositivo” e não consegue criar novos arquivos ou diretórios. É hora de arregaçar as mangas e gerenciar os arquivos e diretórios que consomem disco, contando-os. Felizmente, existem alguns comandos do Linux para fazer isso.
Contando arquivos e diretórios, incluindo arquivos ocultos usando o comando wc
No Linux, o comando ls
pode listar todos os arquivos e diretórios. Este comando quando canalizado (|) com o comando wc
resulta na contagem total de arquivos e diretórios, incluindo o oculto.
Antes de começarmos a contar os arquivos, vamos listar os arquivos reais no diretório ~/HTG usando o comando ls
. Aqui temos um total de dez arquivos, incluindo quatro subdiretórios dentro do diretório principal ~/HTG. Há um arquivo oculto, junto com um arquivo de texto e quatro arquivos de teste.
Para listar arquivos, é recomendado usar ls -A
em vez de ls -a
. O ls
comando com
Para contar o número de arquivos e diretórios, primeiro navegue até o diretório e execute o seguinte comando:
ls | wc -l
Primeiro, o comando ls
lista todos os arquivos e diretórios no diretório ~/HTG sem nenhuma opção de formatação. A saída de ls
consiste em uma lista simples de nomes de arquivos e diretórios, com cada nome em uma linha separada.
Para contar os arquivos listados pelo comando ls
, estamos canalizando (|) sua saída para o comando wc -l
. O comando wc conta esses arquivos listados e gera o número de contagem do arquivo. Lembre-se da saída nove deste comando porque ele não inclui um arquivo oculto presente no diretório ~/HTG.
Temos diferentes opções para usar com o comando ls
. Por exemplo, ls -l
lista arquivos e diretórios no diretório atual usando o formato de listagem longa (-l)
. Ele fornece informações detalhadas sobre cada arquivo, incluindo permissões, proprietário, tamanho e data de modificação.
ls -l | wc -l
Este comando não inclui os arquivos ocultos, mas inclui uma entrada para o próprio diretório (representado por .) no formato de listagem longa - que neste caso é o diretório ~/HTG. Como resultado, aumenta a contagem geral em um.
Se você deseja uma contagem consistente, independentemente do formato de listagem, você pode usar a opção -A com ls
para excluir as entradas especiais (.) diretório atual e (..) diretório pai, ao contar:
ls -A | wc -l
Isso deve fornecer a mesma contagem que o comando ls -l
. A saída é 10 porque este comando também inclui um arquivo oculto.
Se você deseja um comando que inclua arquivos ocultos, o diretório pai (..) e o diretório atual (.) na contagem total, use a opção ls -a
com wc
comando.
ls -a | wc -l
Relacionado: Como usar o comando wc no Linux
Contando o número de arquivos e diretórios usando o comando tree
Para contar o número de arquivos e diretórios em todos os subdiretórios, você pode usar o comando tree
. O comando tree imprime toda a estrutura de diretórios recursivamente e exibe um resumo no final da saída.
<directory> tree
Você pode encontrar o erro do comando tree faltando. Para resolvê-lo, instale o comando tree usando:
Para hosts Ubuntu/Debian: sudo apt install tree Para hosts CentOS/RHEL: sudo yum install tree
Por padrão, o comando tree não imprime os arquivos ocultos. Para exibir o arquivo oculto use a opção -a
com o comando tree:
tree -a
Agora todos os arquivos estão listados e contados, incluindo os ocultos.
Relacionado: Como percorrer uma árvore de diretórios no Linux
Contando arquivos recursivamente usando o comando find
O comando find no Linux com suas várias opções, como -type
, -minprofundidade
e -maxprofundidade
, pode ajudar a realizar a contagem recursiva facilmente. Ele determina a contagem total de itens em uma estrutura de diretórios sem navegar manualmente em cada subdiretório e contá-los um por um.
find <directory> <options> | wc -l
O comando find torna a pesquisa recursiva porque, por padrão, ela conta em cada subdiretório. Não para a sua busca na primeira profundidade.
Para contar todas as entradas (arquivos e pastas) dentro de um diretório, use:
find HTG | wc -l
Este comando também conta o diretório atual que neste caso é ~/HTG – no geral aumenta o resultado da pesquisa em um.
O comando find sem quaisquer condições específicas inclui arquivos regulares e ocultos em sua pesquisa por padrão.
Para contar apenas arquivos use:
find HTG -type f | wc -l
Para contar apenas diretórios incluindo o diretório atual, neste caso ~/HTG, use:
find HTG -type d | wc -l
O comando find também pode procurar arquivos que correspondam a padrões específicos (".txt", ".pdf", ".sh"):
find . -type f -name "*.txt" | wc -l
Este comando exibe o número de arquivos no diretório atual que terminam com a extensão “.txt”.
Ao contar arquivos em uma pasta e suas subpastas, às vezes você não terá permissão para examinar todas as subpastas, então seu sistema pode mostrar um erro como "permissão negada".
Você pode usar uma técnica chamada “redirecionamento de saída” para redirecionar essas mensagens de erro.
find /etc -type f 2> /dev/null | wc -l
Também podemos modificar o resultado da pesquisa usando as opções “minprofundidade” e “maxprofundidade”.
find HTG -mindepth 1 -maxdepth 1 | wc -l
Neste caso, -minprofundidade 1
significa que a busca começa em uma profundidade mínima de 1, ignorando o próprio diretório raiz e iniciando a busca em seus subdiretórios imediatos.
A opção -maxprofundidade 1
realiza a busca com profundidade máxima de 1. Ela não explora subdiretórios dos subdiretórios imediatos.
Relacionado: Como usar o comando find no Linux
Contar arquivos em um diretório Linux com um script Bash
No Linux, os scripts Bash podem automatizar tarefas repetitivas. O mesmo acontece aqui, podemos escrever um script bash e definir um diretório para contar os arquivos presentes nele.
Os scripts bash fornecidos usam o comando find canalizado com wc para contar todos os arquivos no diretório ~/HTG. Este script quando executado gera 11 porque também conta o diretório atual, aumentando o resultado em um.
#!/bin/bash
dir="HTG"
count=$(find "$dir"; | wc -l)
echo "There are $count files in the $dir directory."
Conforme explicado no comando find, para excluir os diretórios especiais da contagem final, adicione a opção -minprofundidade 1
ao comando find.
Contando arquivos usando uma GUI
Contar arquivos no Linux usando a interface de desktop como KDE ou GNOME é super fácil! É como contar arquivos no Windows.
Abra o diretório ou pasta a ser verificado acessando o menu de atividades ou usando o diretório “Home”.
Clique com o botão direito na pasta e escolha a opção "Propriedades".
Uma nova janela aparece mostrando o número total de itens na pasta.
Lembre-se, este método exibe apenas o número total de todos os itens (como “arquivos de texto”, “arquivos .sh” e “diretórios”) e não conta arquivos individuais. Pelo menos, o navegador de arquivos padrão do Ubuntu, Nautilus, não, mas outros, como o Dolphin Browser, mostram mais dados.
Verifique as permissões necessárias para contagem de arquivos
Ao executar todos esses comandos, certifique-se de ter as permissões necessárias concedidas à pasta de trabalho. Digite “sudo” antes de um comando se encontrar um erro de permissão. Além disso, verifique a sintaxe do comando caso encontre algum erro. Para aproveitar ao máximo esses comandos, consulte seus respectivos guias de ajuda usando o comando “man”.