Pesquisa mais rápida do que encontrar

3

Existe uma maneira de encontrar coisas mais rapidamente 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 definiriam esse bit de permissão específico seria estática / não dinâmica.

Eu 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 locate para fazer a mesma coisa.

Só para compartilhar /usr/bin/locate é vinculado ao sym para /etc/alternatives/locate , que por sua vez é vinculado por sym a /usr/bin/mlocate

    
por shirish 05.11.2015 / 08:24

2 respostas

1

Infelizmente, mlocate não indexa as permissões de arquivo, portanto, você precisará recorrer à verificação dos sistemas de arquivos com find , a menos que encontre uma implementação de localização que apresente essa funcionalidade (ou estenda mlocate ). / p>     

por 09.11.2015 / 10:52
1

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

Primeiramente, a partir do manual, o modo -perm + está obsoleto, então você deve usar -perm / mode.

-perm +mode

Deprecated, old way of searching for files with any of the permission bits in mode set. You should use -perm /mode instead. Trying to use the '+' syntax with symbolic modes will yield surprising results. For example, '+u+x' is a valid symbolic mode (equivalent to +u,+x, i.e. 0111) and will therefore not be evaluated as -perm +mode but instead as the exact mode specifier -perm mode and so it matches files with exact permissions 0111 instead of files with any execute bit set. If you found this paragraph confusing, you're not alone - just use -perm /mode. This form of the -perm test is deprecated because the POSIX specification requires the interpretation of a leading '+' as being part of a symbolic mode, and so we switched to using '/' instead.

-perm /mode

Any of the permission bits mode are set for the file. Symbolic modes are accepted in this form. You must specify 'u', 'g' or 'o' if you use a symbolic mode. See the EXAMPLES section for some illustrative examples. If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with the behaviour of -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 (/ some / path), em vez de pesquisar o diretório raiz inteiro (/)

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

Espero que isso ajude você.

    
por 09.11.2015 / 11:43