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