Com o terminal: Exemplos com o comando Find

Aqui estão alguns exemplos que podemos aproveitar quando usamos Encontre, um comando para pesquisar arquivos ou pastas.

Para obter ajuda para o comando, execute:

man find

para sair do manual, basta pressionar a tecla [q] (válido para qualquer manual).

Nos exemplos a seguir, o ponto (.) Depois de localizar (localizar.) Significa que estamos procurando na pasta indicada pelo prompt. Ele pode ser substituído por qualquer caminho válido como / home /.

Ejemplos:

Basta pesquisar arquivos com um padrão.
find . -type f -name "*.deb"

localizar e copiar para / home / pepe /
find . -type f -name "*.deb" -exec cp -f {} /home/pepe/ \;

Encontre os arquivos Thumbs.db e exclua-os.
find . -type f -name "Thumbs.db" -exec rm -f {} \;

Crie um arquivo de texto puro com os arquivos md5 no diretório.
find . -type f -print0 | xargs -0 -n 1 md5sum >> md5.txt

Exclua pastas .svn irritantes.
find | grep "\.svn$" | xargs rm -fr

Substitua um texto por outro.
find -type f | xargs sed -i "s/TEXTO/OTRO/g" *.php

Encontre arquivos atualizados até um dia atrás.
find /var/log/[a-z]* \*.sql -mtime +1

Para gerar os arquivos md5sums dos pacotes DEB:
find . -type f ! -regex ‘.*\.hg.*’ ! -regex ‘.*?debian-binary.*’ ! -regex ‘.*?DEBIAN.*’ -printf ‘%P ‘ | xargs md5sum > DEBIAN/md5sums


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   adequado dito

    exclua todos os arquivos que não sejam .txt (obviamente .txt pode ser qualquer coisa)
    encontrar. ! -name "* .txt" -exec rm {} \;

    pesquisar sem correspondências que não diferenciam maiúsculas de minúsculas:
    encontrar. -iname «* foobar *»

    Observação: o comando -exec não pode ser executado com o parâmetro -iname.

  2.   Taregon dito

    Excelente 😉 esse comando deveria ser obrigatório saber, antes eu tinha medo das opções que existiam no 'man' para poder fazer buscas, mas dando a oportunidade pude ver o quão poderoso ele é na hora de encontrar o que esqueci no meu disco rígido 😐

  3.   Hugo dito

    Find é certamente útil, especialmente para lidar com nomes de arquivos que incluem espaços e outros caracteres incomuns. Por exemplo, eu lembro uma vez que não havia como compactar um conjunto de diretórios, até que me ocorreu usar find com xargs (que é muito mais rápido que -exec, a propósito), e o problema resolvido.

    Outro dos meus usos preferidos para o comando find é alterar permissões recursivamente:


    find . -type d -print0 | xargs -0 chmod 755
    find . -type f -print0 | xargs -0 chmod 644

  4.   elétron 222 dito

    Interessante ^ _ ^

    1.    KZKG ^ Gaara dito

      Como é legal o ícone do Chakra hahahahahaha 😀

      1.    sieg84 dito

        Mageia está faltando 🙂

        1.    KZKG ^ Gaara dito

          Sim, certo 😀
          No momento estou baseado neste hehehehe. Obrigado 🙂

          1.    Lesterzone dito

            E um para minha distro ...

  5.   Archero dito

    Obrigado, os comandos são muito úteis, tenho uma dúvida lembro que no Ubuntu uma vez usei o comando locate, é algum pseudônimo de find ou ...?

    1.    Hugo dito

      Negativa localizar, localizar y localizar são outros comandos de pesquisa que ao contrário find, eles usam um banco de dados que precisa ser atualizado periodicamente com o comando atualizadob.

      Ambos os tipos de comandos têm seus usos. Eu, por exemplo, costumo usar atualizadob seguido de localizarlocalizar quando eu realmente quero encontrar algo rápido em um diretório com muitos dados que eu sei que não são atualizados com muita frequência (por exemplo, um pacote em um repositório), e find quando quero fazer algo mais complexo como combinar os resultados da pesquisa com outro comando, ou quando simplesmente não quero gerar o banco de dados porque sei que o diretório no qual vou pesquisar não contém muitas informações.

      1.    Archero dito

        Muito obrigado Hugo, excelente explicação, só posso dizer o quão potente é o terminal no GNU / linux!

  6.   Sandra dito

    Olá, vejo que é um tópico antigo, mas espero que você ainda possa me ajudar.

    Estou aprendendo a usar a regexp porque vi um documento e estou procurando as palavras erro ou falha e seus derivados, erros ou falha ou falha etc. e minha regexp é:
    : / \ (. * \ (erro | falha \). * \) /
    Ao executá-lo, ele me diz que não há correspondências 🙁, mas para
    :/\(.*\(erro\).*\)/
    o
    : / \ (. * \ (falhou \). * \) /
    Se você encontrar correspondências, pode me dizer como estou errado?

    1.    KZKG ^ Gaara dito

      Qual é a linha completa que você está colocando?

      Para testar e ver se encontro a solução.

      Por outro lado, de qualquer maneira, se você quiser, pode verificar aqui: https://blog.desdelinux.net/?s=expresiones+regulares

  7.   esthefani dito

    Por favor me ajude, quero copiar os arquivos que terminam em * _ZFIR0069.TXT para outro caminho e adicionar uma data ao final, estou executando um comando:

    data = $ (data + »% Y% m% d%»)
    find / xcom_rep / FATF / exit / 42 -name * _ZFIR0069.TXT -exec cp -p {} / backup / FATF / exit / 42 / {} _ $ date \;

    Mas o resultado é:

    {} _20160225% -> mas ele apenas copia um arquivo de todos e é renomeado dessa forma

    O que eu quero é que ele copie todos os arquivos e tenha este formato * _ZFIR0069_ $ date .TXT

    Saudações.

  8.   PepG dito

    Qual é a diferença entre find * -type d e find / home / pepe -type d? Quero listar os diretórios da minha conta e não entendo por que o primeiro faz isso corretamente e o segundo não. ajuda a

  9.   Kaike dito

    Como posso encontrar arquivos que terminam em números? Obrigado