Em que situação `find` e `locate` são mais bem usados? [fechado]
772
Eu sei que locatetem que ter banco de dados gerado e é bem mais rápido, e que findnão precisa ter banco de dados gerado e não é tão rápido. Então em que situações é findmais locateeficiente/afetivo/dá um melhor resultado final?
Como você disse, o local tem um banco de dados e, portanto, é muito mais rápido, enquanto o find precisa percorrer o sistema de arquivos. Mas o banco de dados do local contém apenas nomes de arquivos (com seus caminhos), enquanto o find pode selecionar arquivos com base em outros metadados, como mtime ou tamanho. Portanto, é o meu currículo versátil. Além disso, o banco de dados deve ser atualizado em um esforço em lote, geralmente todas as noites, para que os arquivos que foram criados modificados recentemente não apareçam corretamente. Além disso, você pode esperar que todos os sistemas Unix modernos tenham find disponível, embora nem todos os sistemas tenham o banco de dados de localização ativado.
Portanto, localizar é mais rápido, usá-lo para encontrar a localização de um arquivo, localizar é mais versátil. Não há universal melhor.
Normalmente, o locatebanco de dados é atualizado uma vez por dia. Portanto, se você precisar pesquisar algo mais recente do que um dia, talvez precise finddisso.
Por outro lado, quanto maior o sistema de arquivos que você precisa pesquisar, mais rápido locateterminará find. Especialmente se o sistema de arquivos estiver em um compartilhamento de rede.
Como você disse, o local tem um banco de dados e, portanto, é muito mais rápido, enquanto o find precisa percorrer o sistema de arquivos. Mas o banco de dados do local contém apenas nomes de arquivos (com seus caminhos), enquanto o find pode selecionar arquivos com base em outros metadados, como mtime ou tamanho. Portanto, é o meu currículo versátil. Além disso, o banco de dados deve ser atualizado em um esforço em lote, geralmente todas as noites, para que os arquivos que foram criados modificados recentemente não apareçam corretamente. Além disso, você pode esperar que todos os sistemas Unix modernos tenham find disponível, embora nem todos os sistemas tenham o banco de dados de localização ativado.
Portanto, localizar é mais rápido, usá-lo para encontrar a localização de um arquivo, localizar é mais versátil. Não há universal melhor.
Normalmente, o
locate
banco de dados é atualizado uma vez por dia. Portanto, se você precisar pesquisar algo mais recente do que um dia, talvez precisefind
disso.Por outro lado, quanto maior o sistema de arquivos que você precisa pesquisar, mais rápido
locate
terminaráfind
. Especialmente se o sistema de arquivos estiver em um compartilhamento de rede.