Pesquisa mais rápida do que encontrar

Pesquisa mais rápida do que encontrar

Existe uma maneira de encontrar as coisas mais rápido do que find. Eu estou/estava fazendo:-

$sudo find / -perm +4000

Mas leva muito tempo para encontrar as informações necessárias. e eu sei que a maioria dos arquivos que teriam esse conjunto de bits de permissão específico seriam estáticos/não dinâmicos.

tentei

[$] sudo locate --all / -perm +4000                                                                                               
locate: invalid option -- 'p'

mas como pode ser visto falhou. Alguma idéia de como eu poderia usar o local para fazer a mesma coisa.

Apenas para compartilhar /usr/bin/locateestá vinculado simbolicamente ao /etc/alternatives/locatequal, por sua vez, está vinculado simbolicamente a/usr/bin/mlocate

Responder1

Infelizmente, mlocatenão indexa permissões de arquivo, então você terá que recorrer à varredura de seus sistemas de arquivos com find, a menos que encontre uma implementação de localização que apresente essa funcionalidade (ou se estenda mlocate).

Responder2

Conforme mencionado por @shirish, mlocate não indexa permissões de arquivo. Mas ainda tenho algumas sugestões para você:

Em primeiro lugar, no manual de localização, -perm +mode está obsoleto, então você deve usar -perm /mode.

-perm + modo

Maneira obsoleta e antiga de pesquisar arquivos com qualquer um dos bits de permissão no modo definido. Você deve usar -perm /mode. Tentar usar a sintaxe '+' com modos simbólicos produzirá resultados surpreendentes. Por exemplo, '+u+x' é um modo simbólico válido (equivalente a +u,+x, ou seja, 0111) e, portanto, não será avaliado como -perm +mode, mas sim como o especificador de modo exato -perm mode e, portanto, corresponde a arquivos com permissões exatas 0111 em vez de arquivos com qualquer bit de execução definido. Se você achou este parágrafo confuso, você não está sozinho - basta usar -perm /mode. Esta forma do teste -perm está obsoleta porque a especificação POSIX requer a interpretação de um '+' inicial como parte de um modo simbólico e, portanto, passamos a usar '/'.

-perm /modo

Qualquer um dos modos de bits de permissão está definido para o arquivo. Os modos simbólicos são aceitos neste formulário. Você deve especificar 'u', 'g' ou 'o' se usar um modo simbólico. Consulte a seção EXEMPLOS para alguns exemplos ilustrativos. Se nenhum bit de permissão no modo for definido, este teste corresponde a qualquer arquivo (a ideia aqui é ser consistente com o comportamento de -perm -000).

Em segundo lugar, você pode tentar acelerar a localização: para fazer isso, você precisa ser o mais específico possível. Por exemplo:

find /some/path ...

reduzirá o tempo de pesquisa, porque você especificou o caminho onde pesquisar (/algum/caminho), em vez de pesquisar todo o diretório raiz (/)

E, por último, você pode excluir pastas do sistema que não deseja verificar durante a pesquisa. Por exemplo:

 find /some/path -not \( -path /excluded/path -prune \) -name *.js

informação relacionada