Escolar Documentos
Profissional Documentos
Cultura Documentos
search community /
Como configurar a
autenticação baseada
em chaves SSH em um
servidor Linux
Um problema comum de usuários ao utilizar uma máquina Linux pela primeira vez é como localizar os
Tutorial
arquivos que eles estão procurando.
Como instalar e
configurar um daemon Este guia irá abordar como usar o comando find nomeado apropriadamente. Isso irá ajudar a pesquisar
e cliente SNMP no arquivos em seu VPS usando uma variedade de filtros e parâmetros. Vamos também abordar brevemente
Ubuntu 18.04 o comando locate , que pode ser usado para localizar arquivos de outra forma.
Tutorial
O comando diferencia letras maiúsculas de minúsculas, o que significa que pesquisar por file é
diferente de pesquisar por File .
Para encontrar um arquivo pelo nome, mas não diferenciar maiúsculas de minúsculas, digite:
Se quiser encontrar todos os arquivos que não aderem a um padrão específico, inverta a pesquisa com
-not ou ! . Se você usar ! , é necessário adicionar um caractere de escape para que o bash não tente
interpretá-lo antes do comando find agir:
ou
É possível especificar o tipo de arquivo que deseja encontrar com o parâmetro -type . Funciona desta
forma:
Alguns dos descritores mais comuns que você pode usar para especificar o tipo de arquivo estão aqui:
• : arquivo regular
• : diretório
• : link simbólico
• : dispositivos de caracteres
• : dispositivos de bloqueio
Por exemplo, se quisermos encontrar todos os dispositivos de caracteres em nosso sistema, emitimos
este comando:
1 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
Output
/dev/parport0
/dev/snd/seq
/dev/snd/timer
/dev/autofs
/dev/cpu/microcode
/dev/vcsa7
/dev/vcs7
/dev/vcsa6
/dev/vcs6
/dev/vcsa5
/dev/vcs5
/dev/vcsa4
. . .
Output
/var/lib/ucf/cache/:etc:rsyslog.d:50-default.conf
/usr/share/base-files/nsswitch.conf
/usr/share/initramfs-tools/event-driven/upstart-jobs/mountall.conf
/usr/share/rsyslog/50-default.conf
/usr/share/adduser/adduser.conf
/usr/share/davfs2/davfs2.conf
/usr/share/debconf/debconf.conf
/usr/share/doc/apt-utils/examples/apt-ftparchive.conf
. . .
O comando find oferece várias maneiras de filtrar resultados por tamanho e tempo.
Adicionamos um sufixo no final do nosso valor que especifica como estamos contando. Estas são
algumas opções populares:
• : bytes
• � Kilobytes
• � Megabytes
• � Gigabytes
• : blocos de 512 bytes
Para encontrar todos os arquivos com menos de 50 bytes, usamos esta forma:
Para encontrar todos os arquivos com mais de 700 Megabytes, usamos este comando:
O Linux armazena dados de tempo sobre o horário de acesso, horário de modificação e horário de
alteração.
Podemos usá-los com os parâmetros -atime , -mtime e -ctime . Eles podem usar os símbolos + e - para
especificar maior que ou menor que, como fizemos com o tamanho.
O valor deste parâmetro especifica quantos dias atrás você gostaria de pesquisar.
Para encontrar arquivos que possuem um horário de modificação de um dia atrás, digite:
2 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
Para obter arquivos que tiveram seus metadados alterados há mais de 3 dias, digite:
Existem também alguns parâmetros complementares que podem ser usados para especificar minutos em
vez de dias:
Isso irá encontrar os arquivos que foram modificados no sistema no último minuto.
O find também é capaz de fazer comparações com um arquivo de referência e retornar as que são mais
novas:
Isso é feito usando os parâmetros -user e -group respectivamente. Encontre um arquivo de propriedade
do usuário “syslog” digitando:
Se quisermos que haja correspondência com um conjunto específico de permissões, usamos esta forma:
Se quisermos especificar qualquer coisa com pelo menos essas permissões, use esta forma:
Isso irá encontrar qualquer arquivo correspondente que tenha permissões adicionais. Neste caso, um
arquivo com permissões de “744” seria correspondente.
Para esta seção, iremos criar uma estrutura de diretório em um diretório temporário. Ela irá conter três
níveis de diretórios, com dez diretórios no primeiro nível. Cada diretório (incluindo o diretório temporário)
irá conter dez arquivos e dez subdiretórios.
$ cd Copy
$ mkdir -p ~/test/level1dir{1��10}/level2dir{1��10}/level3dir{1��10}
$ touch ~/test/{file{1��10},level1dir{1��10}/{file{1��10},level2dir{1��10}/{file{1��10},level3dir
$ cd ~/test
Sinta-se livre para verificar as estruturas de diretório com ls e cd para entender melhor como as coisas
estão organizadas. Quando terminar, retorne ao diretório de teste:
$ cd ~/test Copy
Iremos estudar como retornar arquivos específicos dessa estrutura. Vamos testar primeiro um exemplo
com apenas uma pesquisa regular de nomes, para comparação:
Output
./level1dir7/level2dir8/level3dir9/file1
./level1dir7/level2dir8/level3dir3/file1
./level1dir7/level2dir8/level3dir4/file1
./level1dir7/level2dir8/level3dir1/file1
./level1dir7/level2dir8/level3dir8/file1
./level1dir7/level2dir8/level3dir7/file1
./level1dir7/level2dir8/level3dir2/file1
./level1dir7/level2dir8/level3dir6/file1
./level1dir7/level2dir8/level3dir5/file1
3 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
./level1dir7/level2dir8/file1
. . .
Há muitos resultados. Se canalizarmos o resultado para um contador, vemos que há um total de 111
resultados:
Output
1111
Provavelmente, esse número de resultados é grande de mais para lhe ser útil na maioria dos casos.
Vamos tentar restringi-lo.
Para encontrar “file1” apenas nos diretórios de “nível 1”, especifique uma profundidade máxima de 2 �1
para o diretório de nível superior e 1 para os diretórios de nível 1��
Output
./level1dir7/file1
./level1dir1/file1
./level1dir3/file1
./level1dir8/file1
./level1dir6/file1
./file1
./level1dir2/file1
./level1dir9/file1
./level1dir4/file1
./level1dir5/file1
./level1dir10/file1
Também é possível especificar um diretório mínimo se souber que todos os arquivos existem depois de
um determinado ponto abaixo do diretório atual:
Podemos usar isso para encontrar apenas os arquivos no final das ramificações de diretório:
Output
./level1dir7/level2dir8/level3dir9/file1
./level1dir7/level2dir8/level3dir3/file1
./level1dir7/level2dir8/level3dir4/file1
./level1dir7/level2dir8/level3dir1/file1
./level1dir7/level2dir8/level3dir8/file1
./level1dir7/level2dir8/level3dir7/file1
./level1dir7/level2dir8/level3dir2/file1
. . .
Novamente, devido à nossa estrutura de diretórios ramificada, isso irá retornar um grande número de
resultados �1000�.
Output
./level1dir7/level2dir8/file1
./level1dir7/level2dir5/file1
./level1dir7/level2dir7/file1
./level1dir7/level2dir2/file1
./level1dir7/level2dir10/file1
./level1dir7/level2dir6/file1
./level1dir7/level2dir3/file1
./level1dir7/level2dir4/file1
./level1dir7/file1
. . .
É possível executar um comando auxiliar arbitrário em tudo o que for encontrado pelo find usando o
parâmetro -exec . Isso é chamado desta forma:
4 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
O {} é usado como espaço reservado para os arquivos que encontram correspondências. O \; é usado
para que o comando find saiba onde o comando termina.
Por exemplo, poderíamos encontrar os arquivos na seção anterior que possuía permissões 644 e
modificá-los para possuir permissões 664 :
$ cd ~/test Copy
$ find . -type f -perm 644 -exec chmod 664 {} \;
Se quiser encadear diferentes resultados juntos, use os comandos -and ou -or . O -and é considerado
caso seja omitido.
Uma alternativa ao find é o comando locate . Esse comando é geralmente mais rápido e pode pesquisar
todo o sistema de arquivos com facilidade.
A razão pela qual o locate é mais rápido que o find é porque ele depende de um banco de dados dos
arquivos no sistema de arquivos.
O banco de dados é geralmente atualizado uma vez por dia com um script cron, mas é possível atualizá-
lo manualmente digitando:
Execute este comando agora. Lembre-se, o banco de dados deve estar sempre atualizado caso você
queira encontrar arquivos recentemente adquiridos ou criados.
Por exemplo, para retornar apenas arquivos que contêm a própria consulta, em vez de retornar cada
arquivo que possui a consulta nos diretórios que levam a ele, é possível usar o -b para pesquisar apenas
o “nome base”:
Para localizar apenas os resultados de retorno que ainda existem no sistema de arquivos (que não foram
removidos entre a última chamada de updatedb e a chamada locate atual), utilize o sinalizador -e :
Para ver estatísticas sobre as informações que o locate catalogou, use a opção -S :
$ locate -S Copy
Output
Database /var/lib/mlocate/mlocate.db:
3,315 directories
37,228 files
1,504,439 bytes in file names
594,851 bytes used to store database
Tanto o find quanto o locate representam boas maneiras de encontrar arquivos em seu sistema. Cabe a
você decidir qual dessas ferramentas é apropriada em cada situação.
5 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
O find e o locate são comandos poderosos que podem ser fortalecidos combinando-os com outros utilitários ao longo das pipelines.
Experimente filtrar usando comandos como wc , sort e grep .
Join our DigitalOcean community of over a million developers for free! Get help and share
knowledge in our Questions & Answers section, find tutorials and tools that will help you grow as a
developer and scale your project or business, and subscribe to topics of interest.
1.
Leave a comment���
Login to Comment
This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 4.0 International License.
Sign up for Infrastructure as a Working on improving health and You get paid; we donate to tech
Newsletter. education, reducing inequality, nonprofits.
and spurring economic growth?
We'd like to help.
Featured on Community Kubernetes Course Learn Python 3 Machine Learning in Python Getting started with Go Intro to Kubernetes
DigitalOcean Products Virtual Machines Managed Databases Managed Kubernetes Block Storage Object Storage Marketplace VPC Load Balancers
6 of 7 13/03/2022 18:00
Como usar o find e locate para localizar arquivos no Linux ... https://www.digitalocean.com/community/tutorials/how-to-...
Learn More
7 of 7 13/03/2022 18:00