Comando find en Linux

jueves, 16 de diciembre de 2010

Hoy vamos a explicar el funcionamiento de uno de los comandos más útiles, el comando find en Linux. El comando find se utiliza para buscar archivos en un sistema Linux. Asimismo, el comando find en Linux permite buscar archivos por nombre, grupo, tipo, permisos, fechas, etc. Por ello, es una herramienta muy potente para realizar búsquedas de una forma muy rápida y sencilla.

Cabe destacar que la búsqueda se realizará en todos los subdirectorios que estén dentro del directorio que estamos buscando. Aparte de este tutorial, podemos ver información detallada sobre el comando find en Linux si escribimos lo siguiente en la terminal:

man find
La sintaxis del comando find en Linux es la siguiente:

find <-directorio-búsqueda-> <-expresión->
Si escribimos simplemente find en la terminal, realizará una búsqueda de todos los ficheros que existen en el directorio en el que estamos y también en todos los subdirectorios. Asimismo, escribir los siguientes comandos tendrán el mismo resultado que acabamos de comentar:

find . -print

find -print

find .

La búsqueda más habitual con el comando find en Linux suele ser una búsqueda por nombre de archivo. Para ello, si por ejemplo queremos buscar los ficheros que tengan como nombre “log.txt”, estando en el directorio en el cual queremos realizar la búsqueda, escribiremos lo siguiente:

find . –name log.txt
Si existe algún archivo con ese nombre, nos aparecerá listado.

Si por ejemplo queremos realizar la misma búsqueda en todo el sistema, tendremos que añadir el carácter “/” (directorio raiz). A continuación se muestra un ejemplo:

find / –name log.txt
Es importante que si ejecutamos este último comando lo hagamos con permisos de root, ya que si no el sistema dará errores al intentar buscar en carpetas en las que no tenemos acceso. Recordar que si queremos hacer cualquier búsqueda en todo el sistema con el comando find en Linux, simplemente tendremos que introducir el carácter “/” de la forma que hemos explicado.

Se puede dar el caso de que no conozcamos la extensión de un fichero o por ejemplo queramos buscar todos los archivos que tengan la palabra “log” en su nombre de archivo. Para ello, podemos realizar una búsqueda como esta:

find . –name *log*
Con esta expresión le estamos indicando que busque todo lo que tenga la palabra "log". Introduciendo un asterisco (‘*’) por delante y por detrás de la palabra “log”, le estamos indicando que busque cualquier archivo que tenga la siguiente estructura: “cualquier texto” log “cualquier texto”. Por ello, encontrará ficheros que se llamen “logservidor” o “servidorlog”, por ejemplo.

Podemos utilizar esta misma técnica si por ejemplo queremos buscar todos los ficheros de un tipo de extensión. A continuación veremos un ejemplo en el cual encontraremos todos los archivos “.html” gracias al comando find en Linux:

find . –name *.html
Otra opción muy útil del comando find en Linux, es el poder ver qué archivos se han modificado en las últimas horas o minutos. Se suele utilizar el comando –mmin para minutos y el comando –mtime para ciclos de 24 horas. Esto se ve mejor con unos ejemplos. Si por ejemplo queremos ver qué archivos han sido modificados en los últimos 20 minutos, podremos ejecutar lo siguiente:

find . -mmin -20
Por otro lado, si queremos ver que ficheros han sido modificados entre hace 6 y 10 minutos, podremos realizar lo siguiente:

find . -mmin +5 -mmin -10
Trabajar con –mtime es similar, pero como hemos adelantado, se trabaja en ciclos de 24 horas. Por ello, veremos diferentes ejemplos para el comando find en Linux utilizando –mtime. Si queremos saber qué archivos se han modificado en las últimas 24 horas (entre hoy y hace 1 día), lo sabremos de la siguiente forma:

find . -mtime 0
Para conocer los archivos modificados hace menos de 1 día (igual que el resultado anterior):

find . -mtime -1
Si queremos conocer los archivos modificados entre hace 24 y 48 horas:

find . -mtime 1
Por último, para ficheros modificados hace más de 48 horas:

find . -mtime +1

Las combinaciones de uso del comando find en Linux son casi infinitas, por lo que podéis probar y ver la multitud de combinaciones que ofrece.

Fuente de apoyo

Artículos relacionados


Comments

One response to “ Comando find en Linux ”
Post a Comment | Enviar comentarios ( Atom )

Anónimo dijo...

Muy bueno heheh muchas gracias por todo :D

17 de abril de 2013, 3:38

Publicar un comentario en la entrada

Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.