miércoles, 10 de junio de 2009

find y locate

Estas son herramientas reales, usadas cuando buscamos en otros PATH. El comando find, conosido de UNIX, es muy util aunque pude causar algunos problemas por la dificultad de la sintaxis. Este comando no solo permite buscar un archivo por el nombre, sino tambien por tamaño, fecha de ultimos cambios y otras propiedades del archivo. La Forma mas comun es:

find path -name cadena

Que puede ser interpretado como "busca en todos los directorios y subdirectorioscontenidos en path, y muestra aquellos que contengan cadena en su nombre".


Otra aplicacion de find es buscar archivos de un tamaño determinado.
En el ejemplo debajo, peter quiere buscar archivos contenidos en el directorio
actual (y subdirectorios) que superen los 5 mb:

peter:~> find . -size +5000k
psychotic_chaos.mp3


Si buscan en las paginas de manual, encontrarán que find puede ejecutar
operaciones sobre los archivos encontrados. Por ejemplo, borrarlas. Lo primero sera
testear, sin la opcion -exec, que los archivos son los correctos.


peter:~> find . -name "*.tmp" -exec rm {} \;
peter:~>

Años mas tarde fue desarrollado locate. Este comando es mas facil de usar, pero tiene menos funcionalidades que find ya que su salida esta basada en una base de datos de archivos que es actualizada una vez al dia. Por el otro lado, locateutiliza menos recursos que find y muestra los resultados casi instantaneamente.


La mayoria de las distribuciones Linux usan slocate en estos dias, que es la version moderna de locate y no permite que los usuarios lean ciertos directorios a los que no tengan accesso (a menos que sean root). En la mayoria de los sistemas, locate es un enlace al programe slocate:


billy:~> ls -l /usr/bin/locate
lrwxrwxrwx 1 root slocate 7 Oct 28 14:18 /usr/bin/locate -> slocate*

No hay comentarios: