Aprenda cómo usar el comando find en este tutorial de nuestros archivos.

no hace falta decir que todo buen entorno de escritorio Linux ofrece la posibilidad de buscar archivos y carpetas en su sistema de archivos. Si su escritorio predeterminado no lo hace, porque este es Linux, siempre puede instalar una aplicación para hacer que la búsqueda en la jerarquía de directorios sea muy fácil.

Pero ¿qué pasa con la línea de comandos?, Si trabaja con frecuencia en la línea de comandos o administra servidores Linux sin interfaz gráfica de usuario, ¿a dónde acude cuando necesita localizar un archivo? Afortunadamente, Linux tiene exactamente lo que necesita para localizar los archivos en cuestión, integrado directamente en el sistema.

El comando en cuestión es encontrar. Para que la comprensión de este comando sea aún más atractiva, Una vez que lo sepa, puede comenzar a trabajar en sus scripts Bash. Eso no es solo conveniencia, es poder.,

pongámonos al día con el comando find para que pueda tomar el control de la localización de archivos en sus servidores y escritorios Linux, sin la necesidad de una interfaz gráfica de usuario.

cómo usar el comando find

Cuando vislumbré Linux por primera vez, en 1997, no entendía muy bien cómo funcionaba el comando find; por lo tanto, nunca pareció funcionar como esperaba. Parecía simple; ejecute el comando find FILENAME (donde FILENAME es el nombre del archivo) y el comando se suponía que localizaría el archivo y lo reportaría. No sabía que había algo más en el comando que eso. Mucho más.,

Si emite el comando man find, verá que la sintaxis del comando find es:

find 

naturalmente, si no está familiarizado con cómo funciona man, puede estar confundido o abrumado por esa sintaxis. Para facilitar la comprensión, simplifiquemos eso. La sintaxis más básica de un comando de búsqueda básico se vería así:

find /path option filename

ahora lo veremos en funcionamiento.

buscar por nombre

vamos a desglosar ese comando básico para que sea lo más claro posible., La estructura más simplista del comando find debe incluir una ruta para el Archivo, una opción y el nombre del archivo en sí. Usted puede estar pensando, » si conozco la ruta al archivo, ya sabría dónde encontrarlo!”. Bueno, la ruta para el archivo podría ser la raíz de su unidad; entonces / sería una ruta legítima. Introducir eso como su ruta tardaría más tiempo en procesarse, porque tiene que comenzar desde cero, pero si no tiene idea de dónde está el archivo, puede comenzar desde allí. En nombre de la eficiencia, siempre es mejor tener al menos una idea de dónde empezar a buscar.,

El siguiente bit del comando es la opción. Al igual que con la mayoría de los comandos de Linux, tiene una serie de opciones disponibles. Sin embargo, estamos empezando desde el principio, así que vamos a hacerlo fácil. Debido a que estamos intentando encontrar un archivo por nombre, usaremos una de dos opciones:

  • name – case sensitive

  • iname – case insensitive

recuerde, Linux es muy particular sobre el caso, por lo que si está buscando un archivo llamado Linux.odt, el siguiente comando no devolverá resultados.,

find / -name linux.odt

sin embargo, si tuviera que modificar el comando utilizando la opción-iname, el comando find localizaría su archivo, independientemente del caso. Así que el nuevo comando se ve como:

find / -iname linux.odt

buscar por tipo

¿Qué pasa si no está tan preocupado por localizar un archivo por nombre, sino que prefiere localizar todos los archivos de un cierto tipo?, Algunos de los descriptores de archivo más comunes son:

  • F – archivo regular

  • D – directorio

  • L – enlace simbólico

  • C – dispositivos de caracteres

  • B – dispositivos de bloque

ahora, supongamos que desea localizar todos los dispositivos de bloque (UN que se refiere a un dispositivo) en su sistema., Con la ayuda de la opción-type, podemos hacerlo de la siguiente manera:

find / -type c

El comando anterior resultaría en una gran cantidad de salida (gran parte de ella indicando Permiso denegado), pero incluiría una salida similar a:

/dev/hidraw6/dev/hidraw5/dev/vboxnetctl/dev/vboxdrvu/dev/vboxdrv/dev/dmmidi2/dev/midi2/dev/kvm

Voilà! Bloquear dispositivos.

Podemos usar la misma opción para ayudarnos a buscar archivos de configuración. Digamos, por ejemplo, que desea localizar todos los archivos regulares que terminan en el .extensión conf., Este comando se vería algo así como:

find / -type f -name "*.conf"

el comando anterior recorrería toda la estructura de directorios para localizar todos los archivos regulares que terminan en .conf. Si sabe que la mayoría de sus archivos de configuración están alojados en /etc, podría especificar que así:

find /etc -type f -name "*.conf”

El comando anterior listaría todos sus archivos .archivos conf de /etc (Figura 1).

Figura 1: Localización de todos los archivos de configuración en /etc.,

outputing results to a file

Un truco realmente útil es generar los resultados de la búsqueda en un archivo. Cuando sabe que la salida puede ser extensa, o si desea revisar los resultados más adelante, esto puede ser increíblemente útil. Para esto, usaremos el mismo ejemplo anterior y canalizaremos los resultados en un archivo llamado conf_search. Este nuevo comando se vería como:

find /etc -type f -name "*.conf” > conf_search

ahora tendrá un archivo (conf_search) que contiene todos los resultados del comando find emitido.,

buscar archivos por tamaño

Ahora llegamos a un momento en el que el comando find se vuelve increíblemente útil. He tenido casos en los que los escritorios o servidores han encontrado sus unidades misteriosamente llenas. Para hacer espacio rápidamente (o ayudar a localizar el problema), puede usar el comando Buscar para localizar archivos de cierto tamaño. Digamos, por ejemplo, que desea ir grande y localizar archivos que son más de 1000MB. El comando find se puede emitir, con la ayuda de la opción-size, así:

find / -size +1000MB

Puede que te sorprenda la cantidad de archivos que aparecen., Con la salida del comando, puede peinar a través de la estructura de directorios y liberar espacio o solucionar problemas para averiguar qué está llenando misteriosamente su unidad.

Puede buscar con las siguientes descripciones de tamaño:

  • c – bytes

  • k – Kilobytes

  • M – Megabytes

  • G – Gigabytes

  • B – 512-byte blocks

sigue aprendiendo

solo hemos arañado la superficie del comando find, pero ahora tienes una comprensión fundamental de cómo localizar archivos en tus sistemas Linux., Asegúrese de emitir el comando man find para obtener un conocimiento más profundo y completo de cómo hacer que esta poderosa herramienta funcione para usted.

Aprenda más sobre Linux a través del curso gratuito «Introducción a Linux» de la Fundación Linux y edX.