0 Compartilhamentos 248 Views

11 exemplos de utilização do comando “find” no Linux

11 de julho de 2014

O comando “find”, no Linux, é bastante utilizado. Trata-se até de um comando importantíssimo, eu diria. Com ele podemos não somente realizar buscas por arquivos e diretórios, mas também, através da utilização de diversos parâmetros adicionais, realizar outras operações, em conjunto.

Ao mesmo tempo em que o comando pode ser usado para encontrar arquivos e/ou pastas utilizando uma ampla gama de critérios, por exemplo, com ele também podemos apagar arquivos, alterar permissões, etc. Ele também pode, por exemplo, localizar arquivos que foram alterados dentro de um intervalo de dias que o usuário irá especificar (digamos que você deseja saber quais arquivos no servidor foram alterados, por exemplo, nos últimos 30 dias).

É também possível utilizar o comando “find” para encontrar arquivos com base em seu tamanho. É até mesmo possível especificar uma “faixa”: por exemplo, localizar arquivos que possuam entre 10 e 20MB. Encontrar e deletar tais arquivos também é possível.

Abaixo seguem alguns exemplos de utilização do “find” na linha de comando:

O comando acima encontrará todos os arquivos chamados “codigofonte.php” que se encontram no diretório atual. Abaixo você pode conferir um possível resultado:

[email protected] [/home/usertest]# find -name codigofonte.php
./codigofonte.php
[email protected] [/home/usertest]#

Já o comando abaixo encontrará todos os arquivos chamados “codigofonte.txt” que estejam dentro do diretório “/home/usertest”. Repare que aqui não precisamos estar dentro do diretório, ao contrário do exemplo acima.

Um possível resultado segue abaixo:

[email protected] [/]# find /home/usertest -name codigofonte.txt
/home/usertest/public_html/codigofonte.txt
/home/usertest/codigofonte.txt
[email protected] [/]#

Perceba que no resultado acima foram encontrados dois arquivos “codigofonte.txt”. Um em “/home/usertest/public_html/” e outro em “/home/usertest/”.

Podemos também utilizar o comando “find” juntamente com o parâmetro “-iname”, ao invés de “-name”. Desta forma, a busca trará todos os arquivos, tenham eles letras minúsculas ou maiúsculas na composição de seus nomes. Veja:

Ou:

Veja alguns resultados possíveis:

  • Comando digitado dentro do diretório:

[email protected] [/home/usertest]# find -iname codigofonte.txt
./public_html/codigofonte.txt
./Codigofonte.txt
./codigofonte.txt

Ou:

  • Comando digitado fora do diretório:

[email protected] [/]# find /home/usertest -iname codigofonte.txt
/home/usertest/public_html/codigofonte.txt
/home/usertest/Codigofonte.txt
/home/usertest/codigofonte.txt
[email protected] [/]#

Que tal agora utilizarmos o comando “find” para encontrar e remover diversos arquivos, ao mesmo tempo? Todos os arquivos que obedeçam  a um critério, por exemplo, e que estejam dentro de um diretório específico?

Basta digitar o comando abaixo, realizando, claro, as alterações necessárias conforme suas necessidades:

Através do exemplo acima, serão localizados todos os arquivos com extensão .php, dentro do diretório “/home/usertest”. Eles também serão apagados, devido à combinação do “find” com o parâmetro “-exec”, o qual então executará o comando “rm” (remove) logo em seguida, para a devida remoção dos arquivos.

Podemos, obviamente, alterar “*.php” por qualquer outra extensão de arquivo, como por exemplo “*.txt”, “*.exe”, “*.html”, “*.jpg” e assim por diante.

Da mesma forma, podemos fazer com que o comando localize e apague todos os arquivos independentemente dos mesmos conterem letras maiúsculas ou minúsculas na composição de seus nomes, através do já mencionado parâmetro “-iname”, ao invés de “-name”. Veja:

Agora vamos localizar e alterar as permissões (chmod) de arquivos. Digamos que você deseja encontrar todos os arquivos dentro de um diretório com chmod 777 e queira alterar suas permissões para 644. Simples, também:

No exemplo acima, “-type” serve para determinar o tipo do arquivo, e o “f” limita a busca a “arquivos normais” (regular files), os quais contêm dados. Arquivos de texto, binários. Logo em seguida temos o parâmetro relativo à permissão que desejamos alterar (-perm 0777) e finalmente temos “-print -exec chmod 644”, para a devida alteração das permissões para 644.

E para encontrar arquivos que foram modificados nos últimos 30 dias, digamos? Fácil, digite o seguinte:

Lembre-se de que você pode alterar o valor “30” pelo que desejar.

Deseja encontrar arquivos dentro de um mesmo diretório que possuam tamanhos a partir de 10MB e com menos de 30MB?  Simples:

Para localizar em um diretório e apagar de uma vez arquivos maiores que, digamos, 150MB, utilize o comando abaixo :

E nossa última dica, por hoje. Encontrar e apagar todos os arquivos de um determinado tipo, pertencentes a um determinado usuário, dentro de uma pasta:

Onde “/home/usertest” é o diretório dentro do qual desejamos trabalhar, “codigofonte” é o usuário ao qual pertencem os arquivos, e txt representa a extensão dos arquivos. O parâmetro “-iname”, lembrando mais uma vez, serve para que não seja feita nenhuma distinção entre letras maiúsculas e minúsculas, mas você pode também mudar para “-name”.

Vale ressaltar que você pode e deve alterar os caminhos e os nomes dos arquivos, além das extensões e valores, conforme suas necessidades (“/home/usertest”, “codigofonte.php”, “*.php”, “codigofonte”, etc).

Existem diversas maneiras de utilizar o comando “find”, além das acima. Combinações e variações que utilizam os exemplos acima também podem ser feitas. Como eu disse anteriormente, este é um comando bastante útil e muito utilizado.

Você pode se interessar

Promoções de Jogos do Final de Semana (17/01)
Notícias
4 visualizações
Notícias
4 visualizações

Promoções de Jogos do Final de Semana (17/01)

Carlos L. A. da Silva - 17 de janeiro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Dez habilidades essenciais para desenvolvedores em 2020
Artigos
7 visualizações
Artigos
7 visualizações

Dez habilidades essenciais para desenvolvedores em 2020

Carlos L. A. da Silva - 16 de janeiro de 2020

Amplie e aperfeiçoe seu arsenal de conhecimento com essas competências fundamentais.

Promoções de Jogos do Final de Semana (10/01)
Notícias
17 visualizações
Notícias
17 visualizações

Promoções de Jogos do Final de Semana (10/01)

Carlos L. A. da Silva - 10 de janeiro de 2020

Confira as melhores ofertas de jogos de PC para o final de semana.

Mais publicações

A IA do Google derrubou o câncer de mama? Não exatamente
Artigos
19 visualizações
19 visualizações

A IA do Google derrubou o câncer de mama? Não exatamente

Carlos L. A. da Silva - 10 de janeiro de 2020
Mudanças no YouTube para conteúdo infantil já estão valendo
Notícias
18 visualizações
18 visualizações

Mudanças no YouTube para conteúdo infantil já estão valendo

Carlos L. A. da Silva - 7 de janeiro de 2020
Frameworks de servidor HTTP para Dart
Artigos
30 visualizações
30 visualizações

Frameworks de servidor HTTP para Dart

Carlos L. A. da Silva - 6 de janeiro de 2020
Promoções de Jogos do Final de Semana (03/01)
Notícias
19 visualizações
19 visualizações

Promoções de Jogos do Final de Semana (03/01)

Carlos L. A. da Silva - 3 de janeiro de 2020