Inicio arrow Artículos arrow Linux arrow Búsquedas en el árbol de directorios
Menú Principal
Lo más leído
Consigue Firefox
Usuarios
993 registrados
1 hoy
5 esta semana
138 este mes
Último: gabity...
Formulario de acceso



... Regenerar clave
... Registro
Búsquedas en el árbol de directorios Imprimir E-Mail
miércoles, 18 de enero de 2006

La búsqueda de ficheros y contenido en un sistema linux es tan imprescindible como en cualquier otro. Por eso, conocer adecuadamente los comandos a nuestra disposición para llevar a buen fin esta tarea es de estricta obligatoriedad tanto para el usuario como para el administrador.

La búsqueda de ficheros y contenido en un sistema linux es tan imprescindible como en cualquier otro. Por eso, conocer adecuadamente los comandos a nuestra disposición para llevar a buen fin esta tarea es de estricta obligatoriedad tanto para el usuario como para el administrador.

Buscando el nombre del fichero

find es el comando por excelencia para la búsqueda de ficheros en un árbol de directorios en un sistema linux. Dejando a un lado el extenso manual que acompaña a este viejo conocido de dicho sistema, nos centraremos en aportar ejemplos claros de utilización del mismo.

Así, un ejemplo claro de utilización sería la búsqueda de un fichero, por ejemplo file.txt , empezando dicha búsqueda desde el directorio actual:

find . -name file.txt -print

Por supuesto, podemos hacer uso de comodines en nuestras búsquedas. En este caso, acotaremos la ocurrencia entre comillas:

find . -name "fil*" -print

Si el árbol de directorios es muy grande, el comando find se puede volver algo lento. Para caso en los que sea necesario buscar un fichero en todo el árbol de directorios, haremos uso del comando locate. Este comando realiza búsquedas basadas en una base de datos y no directamente sobre el sistema de ficheros. Eso sí, la fiabilidad de este comando depende de lo actualizada que esté la base de datos de consulta. Por ejemplo, en un sistema Fedora, dicha base de datos ha de ser actualizada desde las tareas del cron, las cuales a su vez son ejecutadas desde el fichero /etc/updatedb.conf. También es posible ejecutar a mano el comando updatedb para tener actualizada dicha base de datos al segundo. El uso del comando locate es tan simple como esto:

locate file


Haciendo uso de las tuberías

La verdadera potencia de find se hace patente en conjunción con otros comandos del sistema operativo como grep. Con la unión de estos dos comandos podemos encontrar casi cualquier cosa en nuestro sistema de ficheros.

Por ejemplo, vamos a suponer que no recordamos el nombre del fichero que estamos buscando, pero sí que recordamos que contenía las palabras "Comunicado urgente". Haciendo uso de find y grep obtendremos un listado de coincidencias por pantalla de esta manera:

find . -type f | xargs grep "Comunicado urgente"

O imaginemos que queremos dar con la coincidencias de todo aquello que no contenga cierta cadena en el nombre del fichero:

find . ! -name "*.o" ! -name "*.c" -print
find . -print | fgrep -v '.o' | fgrep -v '.c'

Esto listará todo aquello que no contenga ".o" ni ".c" en su nombre.

O podemos hacer uso directamente del comando grep:

grep -i "Comunicado" 'find . -type f -print'

Como podemos observar, las combinaciones de comandos son muy variadas, dando una potencia inusitada a nuestras búsquedas de datos en el sistema de ficheros. Todo dependerá de un uso adecuado de los mismos y, cómo no, de nuestra imaginación y habilidad.

 

Comentario[s]

Sólo los usuarios registrados pueden escribir comentarios.
Por favor, valídate o regístrate.

Powered by AkoComment 2.0!

 
< Anterior   Siguiente >