¿Hay alguna manera de encontrar cosas más rápido que find
. Estoy/estaba haciendo:-
$sudo find / -perm +4000
Pero se necesitan años para encontrar la información requerida. y sé que la mayoría de los archivos que tendrían ese bit de permiso específico establecido serían estáticos/no dinámicos.
Lo intenté
[$] sudo locate --all / -perm +4000
locate: invalid option -- 'p'
pero como se puede ver fracasó. ¿Alguna idea de cómo podría utilizar la localización para hacer lo mismo?
Sólo para compartir /usr/bin/locate
está vinculado simbólicamente a /etc/alternatives/locate
lo cual a su vez está vinculado simbólicamente a/usr/bin/mlocate
Respuesta1
Desafortunadamente, mlocate
no indexa los permisos de archivos, por lo que tendrá que recurrir a escanear sus sistemas de archivos con find
, a menos que encuentre una implementación de localización que incluya esta funcionalidad (o la amplíe mlocate
).
Respuesta2
Como lo menciona @shirish, mlocate no indexa los permisos de archivos. Pero todavía tengo algunas sugerencias para ti:
En primer lugar, desde el manual de búsqueda, -perm +mode está en desuso, por lo que deberías usar -perm /mode en su lugar.
-permanente +modo
Forma antigua y obsoleta de buscar archivos con cualquiera de los bits de permiso en el modo establecido. Deberías usar -perm /mode en su lugar. Intentar utilizar la sintaxis '+' con modos simbólicos producirá resultados sorprendentes. Por ejemplo, '+u+x' es un modo simbólico válido (equivalente a +u,+x, es decir, 0111) y, por lo tanto, no se evaluará como -perm +mode sino como el especificador de modo exacto -perm mode, por lo que coincide con archivos con permisos exactos 0111 en lugar de archivos con cualquier bit de ejecución establecido. Si este párrafo le resultó confuso, no está solo: simplemente utilice -perm /mode. Esta forma de prueba -perm está obsoleta porque la especificación POSIX requiere la interpretación de un '+' inicial como parte de un modo simbólico, por lo que cambiamos al uso de '/' en su lugar.
-permanente /modo
Cualquiera de los modos de bits de permiso está configurado para el archivo. En esta forma se aceptan modos simbólicos. Debe especificar 'u', 'g' u 'o' si utiliza un modo simbólico. Consulte la sección EJEMPLOS para ver algunos ejemplos ilustrativos. Si no se establecen bits de permiso en modo, esta prueba coincide con cualquier archivo (la idea aquí es ser coherente con el comportamiento de -perm -000).
En segundo lugar, puede intentar acelerar la búsqueda: para hacerlo, debe ser lo más específico posible. Por ejemplo:
find /some/path ...
reducirá el tiempo de búsqueda, porque especificó la ruta donde buscar (/alguna/ruta), en lugar de buscar en todo el directorio raíz (/)
Y, por último, puede excluir las carpetas del sistema que no desea escanear durante la búsqueda. Por ejemplo:
find /some/path -not \( -path /excluded/path -prune \) -name *.js