Você já imaginou localizar seus arquivos e diretórios de forma rápida e com pesquisas específicas?
O comando find é uma poderosa ferramenta de linha de comando que permite que os administradores do sistema localizem e gerenciem arquivos e diretórios com base em uma ampla gama de critérios de pesquisa.
Você pode localizar arquivos por nome, tipo ou extensão, tamanho, permissões, etc.
Um dos programas de linha de comando mais poderosos e flexíveis da caixa de ferramentas diária, por isso vale a pena gastar um pouco mais de tempo nele.
Além de localizar arquivos e diretórios, combinar o comando find com outras pessoas permite que você execute ações nos resultados.
A adição da -exec permite que os administradores de sistemas executem comandos externos e executem ações como copiar, mover, excluir ou alterar as permissões dos arquivos que correspondem aos critérios especificados, como tamanho, nome etc.
A sintaxe geral para o comando find é:
find {path} {name -of-file or dir-to-search} {action-to-take}
- path especifica o diretório
- name-of file or dir-to-search : Nome do arquivo ou diretório a ser procurado
- action-to-take: como copiar, excluir, mover etc.
Neste tutorial, explicaremos como localizar arquivos e diretórios que correspondem aos padrões especificados. Também veremos como executar ações nos arquivos ou diretórios que o comando find localiza.
Encontre arquivos e diretórios
Para procurar um arquivo específico, execute o seguinte comando a partir da raiz (/). O comando contém o nome exato do arquivo que você está procurando.
find . -name file22.txt
Resultado
./test/file22.txt
./sales/file22.txt
Observe que os resultados incluem o caminho. Isso é importante se você não souber o diretório em que o arquivo está localizado ou quando estiver em mais de um local.
Você também pode procurar o arquivo em outro diretório enquanto ainda estiver no local atual. Nesse caso, você precisa fornecer o caminho para o diretório em que deseja pesquisar.
find ./test -name file22.txt
Procurando arquivos específicos em outro diretório
No nosso caso, procuraremos todos aqueles que começam com o arquivo de letras no diretório de teste.
find ./test -name file*
Resultado
./test/file22.txt
./test/file30.doc
./test/file1.txt
./test/file5,doc
Procurar arquivos por extensão
Para procurar arquivos com uma certa extensão, adicione-o ao comando.
find . -name *.txt
Resultado
./test/subtest/subfil.txt
./test/file22.txt
./test/file1.txt
./home1/files32.txt
./home2/file22.txt
./qa/tags.txt
Encontre arquivos e diretórios por nome
Use o comando abaixo para procurar arquivos e diretórios começando com as letras qa. Em nosso computador, temos os arquivos qatree.txte qa.txt, além de um diretório com o nome qa.
Se executarmos o comando;
find ./ -name “qa*”
Retorna a seguinte saída
./test/qatree.pdf
./test/qa.txt
./home/qa
O comando retorna os arquivos e diretórios que correspondem aos critérios de pesquisa. Para localizar apenas arquivos ou diretórios, é necessário especificar isso no comando.
Encontre apenas arquivos ou diretórios
Apenas para arquivos, use a type f.
Somente arquivos
find ./ -type f -name “qa*”
Resultado
./test/qatree.pdf
./test/qa.txt
Somente diretórios
Adicione a type da opção para localizar apenas diretórios.
find ./ -type d -name “qa*”
Resultado
./home/qa
Comando de localização sem distinção entre maiúsculas e minúsculas
Todas as pesquisas com –name diferenciam maiúsculas de minúsculas e não fornecerão resultados com letras maiúsculas. Para obter todos os casos, use a –iname.
find ./ -iname “qa*”
Resultado
./test/qatree.pdf
./test/qa.txt
./test/QAtest.txt
./home/qa
Procure um arquivo em vários diretórios
Para encontrar os arquivos em diferentes diretórios, adicione seus caminhos no comando No nosso caso, verificaremos os diretórios teste numeric.
find ./test ./numeric -name file22.txt -type f
Resultado
./test/file22.txt
/root/numeric/file22.txt
Encontre vários arquivos com extensões diferentes em todos os diretórios
Você pode usar o comando find para localizar vários arquivos que compartilham as diferentes extensões, como *.doc, *.txt *.pdfetc.
Isso pode ser feito separadamente, uma extensão de cada vez, ou usando apenas um comando que inclua todas as extensões desejadas.
find . -type f ( -name “*.txt” -o -name “*.pdf” -o -name “*.doc” )
Resultado
./test/subtest/subfil.txt
./test/qatree.pdf
./test/file22.txt
./test/qa.txt
./test/file30.doc
./books/acro.pdf
./data1/FILE22.txt
./docs/files32.txt
Encontre arquivos que contenham determinado texto
Às vezes, você deseja acessar um arquivo contendo determinado texto, mas não consegue recuperar seu nome ou local. Este comando permite encontrar todos os arquivos que contêm o texto de destino.
“Para procurar todos os arquivos que contêm a palavra hiperconvergência”, use;
find / -type f -exec grep -l -i “hyperconvergence” {} ;
Resultado
/root/numeric/hci
/root/HCIP
A opção –i permite que o comando ignore casos e encontre o texto em maiúsculas ou não, como hiperconvergência, hiperconvergência etc.
Para procurar os arquivos em um diretório específico, basta adicioná-lo ao comando
find ./numeric -type f -exec grep -l -i “hyperconvergence” {} ;
Resultado
./numeric/hci
Encontre arquivos e diretórios com base no tamanho
Você pode encontrar todos os arquivos ou diretórios menores, iguais ou maiores que um determinado tamanho, dentro de um determinado intervalo ou vazios.
Use o formato de tamanho apropriado, dependendo do tipo de arquivo ou diretório que você está procurando.
Material Extra
Se você gostou das dicas e quer mais conteúdos sobre Linux, continue acompanhando o nosso blog.
Deixe um comentário