find / -name example.filename
Estou tentando localizar todas as cópias de example.filename
no meu servidor FreeBSD. Qual é a melhor / mais fácil maneira de fazer isso?
locate filename
Muito mais rápido que find
, se você está executando o serviço de localização e só encontra arquivos que existiam no momento em que updatedb
foi executado (normalmente a noite antes do controle) um cron job).
Você pode executar updatedb
manualmente, mas isso é ainda mais lento do que o find
cletus sugere e requer raiz. Às vezes, atualizo o banco de dados manualmente depois de instalar um monte de coisas novas.
Se você tiver instalado (também conhecido como slocate) instalado,
locate example.filename
locate executa uma tarefa cron todas as noites, reindexando todos os arquivos na sua máquina. Nem sempre é atualizado por esse motivo.
À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.
Se você tiver o banco de dados de localização atualizado, basta:
locate example.filename
Eu às vezes faço
find . | grep example.filename
provavelmente extremamente ineficiente, no entanto.