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
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.
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 😐
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
Interessante ^ _ ^
Como é legal o ícone do Chakra hahahahahaha 😀
Mageia está faltando 🙂
Sim, certo 😀
No momento estou baseado neste hehehehe. Obrigado 🙂
E um para minha distro ...
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 ...?
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.
Muito obrigado Hugo, excelente explicação, só posso dizer o quão potente é o terminal no GNU / linux!
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?
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
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.
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
Como posso encontrar arquivos que terminam em números? Obrigado