0 Compartilhamentos 31 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:

root@host [/home/usertest]# find -name codigofonte.php
./codigofonte.php
root@host [/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:

root@host [/]# find /home/usertest -name codigofonte.txt
/home/usertest/public_html/codigofonte.txt
/home/usertest/codigofonte.txt
root@host [/]#

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:

root@host [/home/usertest]# find -iname codigofonte.txt
./public_html/codigofonte.txt
./Codigofonte.txt
./codigofonte.txt

Ou:

  • Comando digitado fora do diretório:

root@host [/]# find /home/usertest -iname codigofonte.txt
/home/usertest/public_html/codigofonte.txt
/home/usertest/Codigofonte.txt
/home/usertest/codigofonte.txt
root@host [/]#

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

DICA EXTRA: Prepare seu Currículo de Programador // Vlog #53.1
Vídeos
17 visualizações
Vídeos
17 visualizações

DICA EXTRA: Prepare seu Currículo de Programador // Vlog #53.1

Gabriel Fróes - 9 de outubro de 2017

No último vídeo do canal demos algumas dicas sobre como preparar seu currículo para uma vaga de programador mas esquecemos de uma dica super importante que falaremos nesse vídeo.

Confira os principais trailers da New York Comic Con 2017
Notícias
27 visualizações
Notícias
27 visualizações

Confira os principais trailers da New York Comic Con 2017

Carlos L. A. da Silva - 9 de outubro de 2017

Festa dos quadrinhos foi palco de trailers de mega-produções do cinema e séries de TV: Liga da Justiça, The Walking Dead e novo Círculo de Fogo. Confira!

Google teria encontrado indícios de anúncios patrocinados pelo governo russo em sua plataforma
Notícias
9 visualizações
Notícias
9 visualizações

Google teria encontrado indícios de anúncios patrocinados pelo governo russo em sua plataforma

Carlos L. A. da Silva - 9 de outubro de 2017

Segundo o jornal The Washington Post, empresa teria começado sua investigação depois de casos similares no Twitter e no Facebook.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Executivo da Microsoft confirma desinteresse no Windows Phone
Notícias
28 visualizações
28 visualizações

Executivo da Microsoft confirma desinteresse no Windows Phone

Carlos L. A. da Silva - 9 de outubro de 2017
Elon Musk critica Google Clips
Notícias
25 visualizações
25 visualizações

Elon Musk critica Google Clips

Carlos L. A. da Silva - 9 de outubro de 2017
Michel Temer vetou emenda que poderia censurar a internet
Notícias
25 visualizações
25 visualizações

Michel Temer vetou emenda que poderia censurar a internet

Carlos L. A. da Silva - 9 de outubro de 2017