La búsqueda en Linux seria una tarea compleja si no existiera el comando find y greep estos nos dan la capacidad de poder encontrar cualquier cosas este donde este, es aquí donde comenzamos a percibir el poder informático que nos otorga Linux, sin duda disfrutaran mucho de este articulo.
Uso del comando find en Linux
Para realizar búsquedas dentro de Linux podemos hacer uso del comando find ahora ¿como usaremos find? veamos su sintaxis.
Sintaxis de find:
find [Ruta] -name [Cadena de búsqueda]
Ejemplo de uso de find:
find / -name linux
- Donde "/" es la ruta.
- "-name" nos permite realizar búsquedas literales sensibles a las mayúsculas y minúsculas.
- y "linux" la cadena de texto que estamos buscando.
Uso de comodines en la busqueda en Linux
En la búsqueda en Linux con el comando find también se puede hacer uso de comodines.
Ejemplo de uso de comodines en find:
find / -name linux*
find / -name *linux*
Hasta ahora las búsquedas realizadas con el parámetro -name realiza búsquedas literales o sea búsquedas capaces de distinguir entre letras minúsculas y mayúsculas, así que nos realiza una distinción entre por ejemplo un archivo de nombre Linux y otro de nombre linux.
Realizar una búsqueda con find sin discriminación entre mayúsculas y minúsculas
Para realizar una búsqueda que no nos va a discriminar la mayúscula y la minúscula o sea que no va a ser sensible a la mayúscula y la minúscula y nos va a encontrar los resultados no literales usaremos el parametro -iname
Ejemplo:
Find / -iname Linux
Al no ser una búsqueda literal nos mostrara archivos con mayúscula y minúscula que contenga la cadena linux.
Busqueda de archivos en Linux por extensión
El comando find junto a los comodines también lo podemos utilizar para buscar archivos con determinada extensión.
Sintaxis:
find / -name *.c (realiza la búsqueda de todos los archivos con extensión .c (Archivos de lenguaje C) )
find / -name *.h (realiza la búsqueda de todos los archivos con extensión .h (los archivos de cabecera de C) )
find / -name *.so (realiza la búsqueda de todos los archivos con extensión .so (los archivos de librerías dinámicas) )
Busqueda de archivos en Linux por permisos
El comando find también nos permite hacer búsquedas por medio de permisos.
Buscar los permisos de lectura, escritura y ejecución en los 3 roles
find / -perm 0777
- Donde -perm es el operador para búsqueda de permisos.
- y 0777 los permisos que buscamos.
buscar archivos con permiso de lectura y escritura para los 3 los roles
find / -perm 0666
- Donde -perm es el operador para búsqueda de permisos.
- y 0666 los permisos que buscamos.
Buscar archivos con permiso de solo lectura para los 3 los roles
find / -perm 0444
- Donde -perm es el operador para búsqueda de permisos.
- y 0444 los permisos que buscamos.
Búsqueda por sintaxis alternativa
También hay una forma qué es la forma de sintaxis alternativa en la cual nos permite buscar por medio del rol y el permiso que estamos buscando.
En este caso en particular vamos a buscar el grupo que tenga el bit s que es el bit de suit de ejecución como el usuario propietario
find / -perm /g+s
También podemos hacer otra búsqueda en este caso voy a buscar quien tenga el rol de usuario que tenga bit s de suit.
find / -perm /u+s
Búsqueda masiva archivos y directorios en Linux
Otra opción que nos da el comando Find es la búsqueda de archivos y directorios masivos.
find / -type f -empty
-empty que significa vacío, entonces esto nos va a buscar todos los archivos cuyo tamaño es cero o sea que están vacíos.
lo mismo aplica para directorio exactamente la misma sintaxis pero reemplazamos f por d
find / -type d -empty
y nos encuentra todos los directorios vacíos del sistema de archivos que estamos buscando en este caso
Búsqueda de archivos ocultos
Otra búsqueda muy útil que podemos lograr con el find es buscar con el comodín los archivos ocultos, como en Linux los archivos ocultos son precedidos por un punto podemos realizar la siguiente busqueda:
find / -name ".*"
Búsqueda de archivos por usuarios
Otra funcionalidad buena que tiene el find es buscar por usuario y por grupo.
Sintaxis:
find / -user [nombre del usuario]
Ejemplo de búsqueda de archivos por usuario:
find / -user root
find / -user fox
Búsqueda de archivos por grupos
Sintaxis:
find / -group [nombre del grupo]
Ejemplo de búsqueda de archivos por grupo:
find / -group root
find / -group colord
Combinando criterios de búsqueda
A este punto ya somos capaces de sumar lo aprendido y realizar criterios de búsqueda mucho más específicos, vamos a ver como.
Para este ejemplo vamos a buscar los archivos cuyo propietario sea fox y que en su hombre no importando si es mayúscula o minúscula tenga como extensión .c esto lo lograremos utilizando el comodín.
find / -user fox -iname "*.c"
Ahora el mismo ejemplo pero para archivos cuyo usuario sea root
find / -user root -iname "*.c"
Búsquedas de archivos por tiempo de acceso
Con el operador -atime podemos realizar búsquedas de archivos accedidos hace cierto tiempo, en el siguiente ejemplo hace 30 días.
find / -atime 30
Búsquedas de archivos por tiempo de modificación
La funcionalidad de find de buscar por tiempo de acceso y por el tiempo de modificación es una parte muy importante de este comando tenemos por ejemplo la opción -atime y -mtime que nos permite buscar por tiempo de modificación mtime y por tiempo de acceso atime.
Con el operador -mtime podemos encontrar todos los archivos modificados hace cierto tiempo, en el siguiente ejemplo vemos
find / -mtime 30
Búsquedas de find con un rango amplio
find / -mtime +30 -mtime -90
Esto nos daría los archivos que fueron accesados entre el día 30 y 90 o sea 60 días de rango.
También tenemos el parámetro mmin y amin que nos permite buscar en vez de rango de días rango de minutos esto nos permite movernos en el rango de un día no como mtime que nos permiten movernos en el rango de varios días.
Ejemplo de uso de mmin:
find / -mmin -60
Búsquedas de archivos por tamaño
No menos importante es la búsqueda por tamaño del comando find nosotros podemos con el parámetro -size encontrar archivos de un tamaño determinado.
Ejemplo:
find / -size 10M
Con -size 10M le estamos indicado que busque archivos de tamaño de 10MB
Otro ejemplo:
find / -size +10M
con el operador + le estamos indicando que nos busque en este ejemplo los archivos que tengan más de 10 Mb
find / -size -10M
con el operador - solicitamos que nos busque en este ejemplo los archivos que tengan menos de 10 Mb
ahora ampliemos el rango de búsqueda de la siguiente forma
find / -size +10M -size -20M
Esta forma de búsqueda con un rango más amplio nos permite encontrar archivos que tengan un tamaño de 10Mb a 20Mb, muy útil por cierto cuando no sabes el tamaño exacto del archivo que estamos buscando.
Búsquedas con comandos que afecten las búsquedas
Borrar archivos de cierto tamaño
Ahora la búsqueda por tamaño o por cualquier otra búsqueda nos permite hacer algo que es ejecutar un comando que afecte esa búsqueda eso lo hacemos con el comando -exec entonces con –exec podríamos en el siguiente caso borrar todos los archivos que estaban entre los 10 y los 20 megas de espacio.
find /home/fox -size +10M -size -20M -exec rm -f {} \;
Cambio de permisos en un rango de búsqueda
Teniendo en cuenta el ejemplo de exec pasamos al siguiente ejemplo, vamos a hacer una búsqueda de permisos los cuales vamos a encontrar los permisos de lectura, escritura y ejecución para el usuario, lectura y ejecución para el grupo y lectura y ejecución para todo lo demás que es 755 y vamos a cambiarle los permisos, vamos a cambiárselos a 750 -exec le vamos a dar chmod 750 y ahí vamos a cambiar todos los archivos que encuentre con el parámetro que estamos buscando a esos permisos que le estamos indicando
find /home/fox -perm 0755 -exec chmon 750 {} \;
Búqueda de rango de fecha
para terminar vamos a ver la búsqueda por rango de fechas y para esste ejemplo buscaremos entre enero y junio del 2014 entonces nos va a arrojar la búsqueda entre el primero de enero del 2014 y el primero de junio del 2014 todos los archivos que fueron modificados en ese lapso de tiempo.
find / -type f -newermt "2014-01-01" ! newermt "2014-06-01"
Búqueda de rango por año y mes
También podemos buscar por los últimos años, meses, semanas o dias:
find / -type f -newermt "2 year ago"
find / -type f -newermt "1 year ago"
find / -type f -newermt "1 month ago"
find / -type f -newermt "1 week ago"
find / -type f -newermt "1 day ago"
find / -type f -newermt "last friday"
Buscar dentro de un archivo con Greep
Una vez controlada la búsqueda de archivos solo hace falta tener un mismo control en la buscada de contenido dentro de los archivos, así no habrá nada que se te escape, y para lograrlo utilizaremos greep
Ejemplo de uso de greep:
greep 80 /etc/*.conf
- Donde 80 es la cadena a buscar
- /etc/ en la ruta en donde se realizara esa búsqueda
- y *.conf es para indicar que la busqueda se haga en todos los archivos .conf
En el segundo ejemplo del uso de greep realizaremos una búsqueda de una cadena de texto:
greep "support" /etc/*.conf
En el tercer ejemplo
greep "P*22" /etc/*/*conf*
find / -name "*[aA]*" resultado entre a y A
find / -name "*[xX]*" resultados entre x y X
find / -name "*[0-9]*" resultados númericos
find / -name "*[L-M]*" resultados entre L y M
En las siguientes búsquedas ¿Podrías decirnos que resultado arrojara?
ls [a]*
ls [l]*
ls [!l]*
ls [!a]*
ls | grep "^[1]"
ls | grep "^[L]"
ls | grep "^[A-z]"
ls *[1]*
ls | grep "[l]$"
ls | grep "[a]$"
ls | grep "[^a]$"
ls | grep "[a-m]$"
ls | grep "[a-m$]"
ls | grep "^[a-m]$"
Por último tenemos una tabla en resumen de cada uno de los comodines para la búsqueda tanto find como en greep tenemos y el uso de comodines.
Bueno eso es todo por esta entrega en el curso de Linux estoy feliz de volver estoy feliz de estar con usted aquí entregándoles esta información qué sé que les gusta mucho y que es de su agrado y por eso prometo solemnemente no dejar de hacer los articulos del curso Linux hasta que termine los 60 capitulos así que no se olviden por favor de compartir esta pagina en sus redes sociales, y suscríbanse al canal no nada mas me Beneficia a mi sino a ustedes porque hay mas material y más información.
yo soy efox declasificado un enfoque diferente de la tecnología informática.
¡Hasta el próximo capitulo!
fuera bueno si lo rwalizas en pdf para poderlo descargar, para aquellos que no poseen internet personal
Tremenda pagina es esta. Realmente muy, pero muy buena, de las mejores que he visto hasta ahora.