0 Compartilhamentos 207 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 (15/02)
Notícias
11 visualizações
Notícias
11 visualizações

Promoções de Jogos do Final de Semana (15/02)

Carlos L. A. da Silva - 15 de fevereiro de 2019

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

Como salvar seus dados do Google Plus
Dicas
9 visualizações
Dicas
9 visualizações

Como salvar seus dados do Google Plus

Carlos L. A. da Silva - 15 de fevereiro de 2019

Com o fim anunciado, você tem até primeiro de Abril para resgatar tudo que publicou na rede social.

Reagindo a Vagas de Emprego para Programadores // Vlog React #89
Vídeos
1,655 compartilhamentos6,810 visualizações
Vídeos
1,655 compartilhamentos6,810 visualizações

Reagindo a Vagas de Emprego para Programadores // Vlog React #89

Thais Cardoso de Mello - 14 de fevereiro de 2019

Decidimos mostrar algumas vagas de trabalho para programadores e vamos comprovar se as empresas estão realmente loucas pedindo coisas demais nos perfis profissionais.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Manifesto Ágil: Tipos de demanda e classes de serviço
Artigos
13 visualizações
13 visualizações

Manifesto Ágil: Tipos de demanda e classes de serviço

Plataformatec - 12 de fevereiro de 2019
Mark Zuckerberg conseguiu destruir o Google Plus
Artigos
16 visualizações
16 visualizações

Mark Zuckerberg conseguiu destruir o Google Plus

Carlos L. A. da Silva - 11 de fevereiro de 2019
W3C // Dicionário do Programador
Vídeos
1,655 compartilhamentos6,814 visualizações
1,655 compartilhamentos6,814 visualizações

W3C // Dicionário do Programador

Thais Cardoso de Mello - 11 de fevereiro de 2019
Promoções de Jogos do Final de Semana (08/02)
Notícias
22 visualizações
22 visualizações

Promoções de Jogos do Final de Semana (08/02)

Carlos L. A. da Silva - 8 de fevereiro de 2019