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/locate
está vinculado simbolicamente ao /etc/alternatives/locate
qual, por sua vez, está vinculado simbolicamente a/usr/bin/mlocate
Responder1
Infelizmente, mlocate
nã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