it-swarm-pt.tech

Como encontrar um arquivo no FreeBSD

Estou tentando localizar todas as cópias de example.filename no meu servidor FreeBSD. Qual é a melhor/mais fácil/mais eficiente maneira de fazer isso?

14
Ian
find / -name example.filename
18
cletus
locate filename

Muito mais rápido que find, se você estiver executando o serviço de localização e ele encontrar apenas arquivos que existiam no momento updatedb última execução (geralmente a noite antes, sob o controle de um trabalho cron).

Você pode executa updatedb manualmente, mas é ainda mais lento que o cletus find sugere e requer raiz. Às vezes, atualizo o banco de dados manualmente depois de instalar um monte de coisas novas.

19

Se você tiver o localizador (aka slocate) instalado,

locate example.filename

o local executa um trabalho cron todas as noites que reindexa todos os arquivos da sua máquina. Nem sempre é atualizado por esse motivo.

2
Paul Tomblin

Às vezes, você deseja encontrar arquivos em um nível de diretório específico. Nesse caso, pode ser conveniente usar curingas do Shell:

ls /data/*/example.filename

Obviamente, isso só funciona se você tiver uma estrutura de diretórios rígida.

2
Jon Ericson

locate

Como outros mencionados, locate é a maneira mais rápida de encontrar um arquivo. Este comando usa um índice pré-compilado dos nomes de arquivos e pastas. Esse banco de dados de nomes é pesquisado, em vez de rastrear seu sistema de arquivos.

locate example.filename 

Para não diferenciar maiúsculas de minúsculas, adicione -i.

locate -i eXAmPle.FileName

Atualizar banco de dados locate

O banco de dados usado por locate deve estar atualizado. Após fazer uma instalação ou download que possa conter o arquivo desejado, você deve atualizar o banco de dados locate.

O banco de dados locate acabará sendo atualizado automaticamente pelo seu sistema FreeBSD. Há um conjunto semanal de tarefas que inclui essa tarefa. Essas tarefas estão listadas no /etc/periodic/weekly/310.locate roteiro.

A maneira mais fácil e segura de forçar a atualização antecipada do banco de dados locate é forçar o conjunto semanal de tarefas a serem executadas agora.

Sudo periodic weekly

Ou você pode até forçar todas as tarefas regulares a serem feitas. Você pode fazer isso imediatamente após configurar um novo sistema FreeBSD.

Sudo periodic daily weekly monthly

Se você estiver usando outros meios para atualizar o banco de dados locate, poderá receber uma mensagem sobre segurança, revelando os nomes de todos os arquivos do seu sistema para qualquer usuário no sistema FreeBSD. O uso da rota periodic evita esse problema.

1
Basil Bourque

Se você possui o banco de dados de localização atualizado, basta:

locate example.filename
0
Sophie Alpert

Eu faço às vezes


  find . | grep example.filename

provavelmente extremamente ineficiente no entanto.

0
kgrad