Find: Encuentra un archivo dónde sea al instante

[h]Find : una orden muy potente y muy eficaz para encontrar un archivo[/h]

https://www.wifi-libre.com/img/members/3/find_1.jpg

**Find **es un comando muy interesante que permite hacer muchas cosas gracias a sus opciones.
Su función principal es encontrar archivos.
Podemos hacer lo con nautilus o el explorador de archivos que tenemos instalado pero find es sin dudas la opción la más rápida.
Vamos al grano directo y voy a darles la formula para buscar y encontrar un archivo en todo el disco en un instante, una linea de orden muy útil.

sudo find / -iname '*nombre_archivo*' 

[list=*]
]sudo : para tener privilegios de administrador y poder mirar en todos los directorios del sistemas/]
]find : el comando/]
]/ : La “raiź”. Find busca de forma “recursiva” desde le directorio que indicamos. Es decir que empieza en el directorio que indicamos y va bajando la arborescencia en búsqueda del archivo. Si nos ponemos en la raíz, el primer directorio que contiene todos los otros directorios, buscáremos en absolutamente todo el disco./]
]-iname : indicamos así a find de buscar un nombre (name) y que lo haga que contenga o no letras mayúsculas ( el “i” de “iname” que significa “case insenstive”) /]
*]nombre_archivo

  • : Ponemos el nombre del archivo que buscamos entre apóstrofos. No es necesario pero es una buena idea porque podemos incluir espacios en el caso de que el nombre del archivo tenga uno(s) espacio(s)
  • ***** : Los asteriscos son facultativos pero es también una buena idea usarlos porque podemos encontrar el archivo sin estar seguro del nombre completo.
  • nombre del archivo : gracias a los asteriscos no hace falta conocerlo precisamente/*]
    [/list]

Ejemplo : tengo por allí unos drivers para la AWUS036ACH pero no me recuerdo dónde ni cual es el nombre exacto… se que lleva “rtl” como todos los chipsets y drivers realtek, pero nada más :stuck_out_tongue:
Para que nos demos cuenta de la velocidad inigualable de **find **uso el comando time para que nos diga cuanto tiempo a necesito find para buscar en todo el disco

sudo time find / -name '*rtl*'

https://www.wifi-libre.com/img/members/3/find_2.jpg
Mi búsqueda no era muy precisa y este es el driver que buscaba (el 8172u)
Ahora puedo hacer una búsqueda mas precisa para encontrar el código fuente y no tener que buscar en le resultado de la búsqueda usando la expressión regular
La cosa es que da igual si lo hago en dos veces en tres : Miren el tiempo trascurrido para buscar en todo el disco… ¡Dos segundos! :smiley:
Me repito pero hay que decirlo : No hay forma mas rápida y eficiente en el mundo de buscar un archivo.
Si lo comparas con la velocidad del "explorador de archivo de windozzzz " es para partirse de risa. :smiley:
¿Cuanto tiempo pensáis que necesita para encontrar todas los handshakes que tengo?
¿Un segundo?
Probamos :
https://www.wifi-libre.com/img/members/3/find_4.jpg
¡Toma ya! :smiley:
0,12 segundos

Find tiene otras opciones muy interesantes.
Podemos buscar un archivo según su tamaño.
Si por ejemplo busco las ISO linux que tengo descaradas puedo hacer

sudo find / -size +1G

Con -size +1G indico que quiero ver todos los ficheros superiores o iguales a 1GB

Otra cosa que mola mucho es que puedo determinar un intervalo de tiempo.
Digamos que he descargado ayer una imagen que me gustaba pero no tengo la más mínima idea del nombre
Puedo hacer una búsqueda así :

sudo find /home -atime -1 -iname '*jpg'

-atime -1 significa que limito la búsqueda a los archivos creados-modificados hasta ayer.
Por supuesto puedo combinar los criterios, como en este caso, dónde además busco solo los archivos con extensión “*.jpg”
En este caso se que no hace falta mirrar en todo el disco así que lo hago en mi carpeta personal y todas la carpetas que contiene (por esto pongo /home)
https://www.wifi-libre.com/img/members/3/find_3.jpg
Me vas a decir : “Pero amigo, era fácil: Estaba en imágenes”.
Y te voy a responder: “Ni te imaginas la cantidad de imágenes que tengo por animar el foro, ta asustarías” :smiley:

Estos son solos unos ejemplos casi simplones, tienes un puñal de posibilidades, filtros y opciones.
Se puede incluso borrar un archivo encontrado con delete
O ejecutar una archivo que encuentras…
Este tipo de opciones (delete o exec) son unas opciones a usar con criterio y en lugar de “exec” (ejecutar) será mejor usar “-ok ” que te pedirá confirmación antes de ejecutar el comando.
Si hechas un ojo a la “man page” (ver link al final) vas a flipar con lo que puede hacer find :cool:
Para más información sobre find
[list=*]
]25 Practical examples of the find command @ LibreByte/]
]Find - Man page @ linuxcommand.org/]
[/list]