Buscar archivos en Linux con el comando find

Buscar archivos en Linux con el comando find

Buscar archivos en Linux desde la línea de comandos es fácil usando el comando find. Este comando de Linux usa un sencillo mecanismo condicional para filtrar objetos. Veamos cómo se usa el comando find en Linux para encontrar un archivo desde la línea de comandos.

Comando find en Linux

El comando find se usa para localizar archivos en Linux, basándose en los criterios especificados por el usuario. La sintaxis básica del comando es la siguiente:

find -opciones /ruta expresión

Atributos del comando find

  • -opciones: las opciones o parámetros de búsqueda permiten controlar el comportamiento y el método de optimización del proceso de find.
  • /ruta: define la ruta de acceso al directorio a partir de la cual el comando find empezará a filtrar.
  • expresión: define las acciones a realizar para crear un resultado.

Opciones del comando find

Localizar archivos por nombre en Linux

Para encontrar archivos por nombre en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -name nombredelarchivo

Localizar archivos por extensión

Para encontrar archivos por extensión en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -name *.html

Localizar archivos en el directorio actual

Para encontrar archivos en el directorio actual, hay que introducir el siguiente comando en la línea de comandos:

find . -name nombredelarchivo.html

Localizar archivos modificados durante un período de tiempo

Para encontrar archivos que hayan sido modificados durante la semana anterior, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -mtime 7 “.html”

Localizar archivos modificados durante un período de tiempo por un usuario específico

Para encontrar archivos que hayan sido modificados durante la semana anterior por un usuario en particular, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -user nombredeusuario -mtime 7 “.html”

Limitar la búsqueda a un número específico de subdirectorios

Para limitar la búsqueda a una cantidad específica de subdirectorios, hay que añadir la opción -maxdepth X al comando:

find -maxdepth 3 /ruta -name *.html

Ignorar mayúsculas y minúsculas

Para hacer una búsqueda ignorando mayúsculas y minúsculas, hay que añadir la opción -iname al comando:

find /ruta -iname *.html

Buscar archivos

Para buscar archivos exclusivamente, hay que añadir la opción -type f al comando:

find /ruta -type f -name “*.html”

Buscar directorios

Para buscar directorios exclusivamente, hay que añadir la opción -type d al comando:

find /ruta -type d -name “*.html”

Seguir y mostrar enlaces simbólicos

Dado que el comando find ignora los enlaces simbólicos por defecto, hay que añadir la opción -L al comando para seguirlos y mostrarlos:

find -L /ruta -name *.html

Localizar archivos por tamaño

Para encontrar archivos de más de 500 MB en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -size +500M

Combinar dos condiciones o filtros

Por ejemplo, para filtrar archivos de entre 500 MB y 1 GB en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -size +500M -and -size -1G

Filtrar por al menos una de las condiciones que se especifican

Por ejemplo, para filtrar archivos por una de las extensiones indicadas en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -name *.docx -or -name *.odt

Excluir la segunda condición

Por ejemplo, para excluir una extensión de la búsqueda en un directorio y todos sus subdirectorios, hay que introducir el siguiente comando en la línea de comandos:

find /ruta -name *.docx -not -name *.odt
Opción o parámetro de búsquedaUso
-nameFiltrar archivos por nombre.
-inameHacer una búsqueda por nombre sin tener en cuenta mayúsculas y minúsculas para localizar un archivo.
.Buscar en el directorio actual.
-typeFiltrar archivos por tipo de archivo.
-userFiltrar archivos por usuario.
-mtimeFiltrar archivos limitando el período de tiempo de su modificación.
-maxdepthLimitar la búsqueda a un número concreto de subdirectorios.
-LIncluir los enlaces simbólicos en la búsqueda.
-sizeFiltrar por tamaño de archivo.
-andSe sitúa entre dos condiciones para indicar que es necesario incluir ambas.
-orSe sitúa entre dos condiciones para indicar que es necesario filtrar por al menos una de las condiciones.
-notSe sitúa entre dos condiciones para indicar que es necesario ignorar la segunda condición. 

Optimizaciones del comando find 

Estas son las tres fases de optimización para mejorar el filtrado cuando se usa el comando find en Linux.

-O1: por defecto

-O1 es la configuración estándar. Permite que find empiece a filtrar por nombre de archivo antes de ejecutar cualquier otro test.

find -O1 /ruta -name "*.html"

-O2: nombre de archivo y tipo de archivo

-O2 permite que find filtre por nombre de archivo y tipo de archivo antes de pasar a los filtros que requieran más recursos.

find -O2 /ruta -name "*.html"

-O3: eficiencia y probabilidad de éxito

-O3 permite que find reorganice automáticamente los filtros para priorizar la eficiencia y la probabilidad de éxito.

find -O3 /ruta -name "*.html"

Búsquedas basadas en contenido: Find + Grep

El comando find de Linux solo filtra archivos en base a nombres de archivo y metadatos. Así que, para buscar archivos en base a su contenido, es necesario añadir el comando grep a la línea de comandos:

find /ruta -type f -exec grep “contenido” ‘{}’ \; -print
  • -exec: es un comando que permite al comando find ejecutar una tarea específica una vez en cada archivo que se ajuste a la búsqueda.
  • ‘{}’: las llaves son el marcador de posición de los resultados que se ajustan a la búsqueda.
  • \;: la opción -exec se cierra con una barra invertida y un punto y coma para evitar que pueda ser interpretada por el shell.
  • -print: muestra los resultados en la pantalla.

Si te ha gustado, compártelo en redes sociales

Servicios gestionados

Administración de sistemas y externalización IT adaptadas a las necesidades de cada proyecto.

DESCUBRIR MÁS
Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid