Como buscar arquivos em um diretório via CLI no Linux!

Guia completo para encontrar arquivos em um diretório via CLI com poucos comandos no Linux!

Por
Glauber GF
Usuário do GNU/Linux desde 2004, graduado em Sistemas de Informação, entusiasta na cultura DevOps.

Nos dias atuais o sistema GNU/Linux esta muito mais fácil de se usar pela grande evolução das interfaces gráficas (DE – Desktop Environment) como KDE, Gnome, Xfce, Mate etc, em relação à alguns anos atrás.

Com isso, caso em algum momento seu sistema apresente algum bug que te impossibilite de usar a interface gráfica, o jeito é se virar dentro da tela preta executando comando (CLI – Command Line Interface) em seu ambiente.

Com isso, vamos ver como encontrar arquivos em um diretório via CLI com o comando find, ls e du, podendo ser arquivo com um tamanho relativamente grande ou pequeno.

A sintaxe pode variar de acordo com a distribuição GNU/Linux. Portanto, leia as páginas do manual.

Como encontrar arquivos em um diretório via CLI

Os comandos executados foram em um sistema GNU/Linux Debian. Lembre-se que no Debian os comandos devem ser executados como ROOT. Porém, também saiba que é possível habilitar o sudo no Debian com este tutorial.

Você precisa ficar atento, alguns comandos abaixo estão com o sudo, remova-o da linha de comando após copiar caso utilize o ROOT.

O comando find (search for files in a directory hierarchy)

Segue abaixo o comando find com suas sintaxe para encontrar um tipo de arquivo bastando passar as informações de acordo com sua necessidade.

Terminal
find {/caminho/do/arquivo} -type f -size +{tamanho-do-arquivo-em-kb}k -exec ls -lh {} \; | awk '{ print $5 ": " $9 }'

Um exemplo para encontrar arquivos grandes .iso, maiores que 1 GB (Gigabytes), equivalente a 1048576 kB (Quilobytes) no diretório ~/Downloads/ do usuário.

Terminal
find ~/Downloads/*.iso -type f -size +1048576k -exec ls -lh {} \; | awk '{ print $5 ": " $9 }'

No comando acima foi combinado o comando find para procurar o arquivo juntamente com o ls para listar o que estamos procurando, no caso arquivo com a extensão “.iso”, fazendo o filtro com o awk para mostrar apenas as colunas com a informação do tamanho do arquivo e o caminho onde se encontra o arquivo.

Para listar todos os arquivos no diretórios ~/Downloads/ventoy-1.0.79/WebUI/static/img/ com menos de 5 b (bytes) de tamanho, execute o comando abaixo.

Terminal
find ~/Downloads/ventoy-1.0.79/WebUI/static/img/ -size -5b
Comando find

Localizando arquivo maior que 100 MB (Megabytes) usando o comando find no diretório /var/log/.

Terminal
sudo find /var/log/ -type f -size +100M
Comando find

Caso queria que mostre outras informações como proprietário, tamanho etc, insira no final do comando a sintaxe para o ls: -exec ls -lh {} \; .

Terminal
sudo find /var/log/ -type f -size +100M -exec ls -lh {} \;
Comando find

O comando ls (list directory contents)

Com o comando ls, também podemos encontrar o menor arquivo em um diretório, combinando com o tail para mostrar as últimas 10 linhas ou com o head as 10 primeiras linhas.

Os parâmetros usados:

  • -l – formato de listagem longa
  • -S – ordena por tamanho de arquivo, o maior primeiro
  • -h – tamanhos de impressão como 1K, 234M, 2G etc
  • -r – ordem inversa durante a ordenação

No comando abaixo, será mostrado as últimas 10 linhas em ordem crescente por tamanho do arquivo com o tail.

Terminal
sudo ls -lShr /var/log | tail -10

Agora será mostrado as primeiras 10 linhas em ordem crescente por tamanho do arquivo com o head.

Terminal
sudo ls -lShr /var/log | head -10
Comando ls

O comando du (estimate file space usage)

Além do comando find e ls, podemos listar os arquivos maiores ou menores com o comando du que estima o uso do espaço no arquivo.

Nos comandos abaixo, combinando com o head e o tail, vamos procurar arquivos que contenha apenas .gz em /var/log/, organizando com o comando sort do menor para o maior.

Terminal
sudo du -csh /var/log/*.gz | sort -h | head -20
Terminal
sudo du -csh /var/log/*.gz | sort -h | tail -20
Comando du

Não há um único comando que podemos usar para procurar e listar arquivos grandes ou pequenos, mas os que foi mostrado nesse post ajuda bastante no dia a dia. Então é isso pessoal, até a próxima!

Compartilhe este artigo
Sair da versão mobile