Skip to content

02 El Comando find

Alan edited this page Jun 13, 2026 · 1 revision

El Comando find

Acerca del Comando find

El comando find es un comando que busca recursivamente archivos que coincidan con cierto criterio de búsqueda (e.g., nombre del archivo, tipo de archivo, propietario, tamaño, etc.). Al encontrar archivos que cumplan con dicho criterio, por defecto imprime la ruta de dichos archivos. También puede realizar acciones sobre los archivos encontrados.

Sintaxis del Comando find

find [opciones] [directorio ...] {expresión} [acciones]

Note

Donde la expresión hace referencia a los criterios de búsqueda.

Opciones para la Expresión (Criterios de Búsqueda)

A continuación se encuentran algunas de las opciones más comunes para la expresión (criterios de búsqueda).

Opción Descripción Ejemplo
-name patrón El nombre del archivo coincide con el patrón especificado (sensible a mayúsculas). -name "*.log"
-name "archivo.txt"
-iname patrón El nombre del archivo coincide con el patrón especificado ignorando mayúsculas (case insensitive). -iname "*.LOG"
-iname "README*"
-user usuario|UID Coincide con el usuario o UID propietario del archivo. -user root
-user 1000
-group grupo|GID Coincide con el grupo o GID del grupo propietario del archivo. -group sudo
-group 1001
-size n[cwbkMG] Coincide con el tamaño especificado. El sufijo indica la unidad: c bytes, w palabras de 2 bytes, b bloques de 512 B, k KiB, M MiB, G GiB. Usar +n para mayor que y -n para menor que. -size +10M
-size -1k
-perm modo Coincide con los permisos indicados en notación simbólica u octal. -perm 644
-perm -u+x
-type b|c|d|p|f|l|s|D Coincide con el tipo de archivo: f archivo regular, d directorio, l enlace simbólico, b dispositivo de bloque, c dispositivo de caracteres, p tubería nombrada, s socket, D puerta (Solaris). -type f
-type d
-newer archivo Coincide con archivos modificados más recientemente que el archivo de referencia. -newer /etc/passwd
-newer referencia.txt
-atime n Coincide con archivos cuyo último acceso fue hace exactamente n días. Usar +n para más de n días y -n para menos. -atime -7
-atime +30
-mtime n Coincide con archivos cuya última modificación del contenido fue hace n días. -mtime -1
-mtime +90
-ctime n Coincide con archivos cuyo último cambio de metadatos (permisos, propietario, etc.) fue hace n días. -ctime -7
-ctime +14

Operadores para las Expresiones (Criterios de Búsqueda)

Puedes combinar expresiones usando operadores lógicos. Cuando más de una expresión es especificada, por defecto solo se encuentran los archivos que coincidan con todas las expresiones. Sin embargo, es posible utilizar operadores lógicos para personalizar aún más los criterios de búsqueda.

Operador Opción Descripción Sintaxis
AND -a|-and Evalúa que todas las expresiones se cumplan expresión1 expresión2 ... expresiónN
expresión1 -a expresión2 ... -a expresiónN
expresión1 -and expresión2 ... -and expresiónN
OR -o|-or Evalúa secuencialmente (izquierda a derecha) cada expresión hasta que una se cumpla; las restantes no se evalúan expresión1 -o expresión2 -o expresiónN
expresión1 -or expresión2 ... -or expresiónN
NOT !|-not Evalúa que la expresión sea falsa (negación) ! expresión
-not expresión
UNION , Evalúa cada una de las expresiones especificadas de forma independiente expresión1, expresión2, ..., expresiónN

Note

El operador ,, puede tener espacios cero o más espacios antes y después.

Opciones para las Acciones

A continuación se encuentran algunas de las opciones más comunes para las acciones que se pueden realizar sobre los archivos encontrados.

Opción Descripción Ejemplo
-print Muestra la ruta de los archivos encontrados (acción por defecto). -print
-exec cmd {} ; Ejecuta el comando especificado por cada archivo encontrado. {} se sustituye por la ruta del archivo. El comando termina con \; o +. -exec rm {} \;
-exec chmod 644 {} +
-ok cmd {} ; Igual que -exec, pero solicita confirmación interactiva antes de ejecutar el comando en cada archivo. -ok rm {} \;
-ok mv {} /tmp \;
-delete Elimina los archivos encontrados. Usar con precaución. -delete
-fprint archivo Almacena las rutas de los archivos encontrados en el archivo destino indicado. -fprint resultados.txt

Ejemplos de Comandos de find

El comando find tiene muchísimas opciones útiles y poderosas para encontrar archivos específicos y realizar operaciones sobre ellos.

Ejemplos Sencillos del Comando find

# Buscar todos los archivos con extensión .txt en el directorio actual
find . -name "*.txt"

# Buscar todos los directorios dentro de /home
find /home -type d

# Buscar archivos mayores a 100 MiB en /var
find /var -size +100M

# Buscar archivos pertenecientes al usuario "juan"
find / -user juan

# Buscar archivos modificados en los últimos 7 días en /etc
find /etc -mtime -7

Ejemplos Avanzados del Comando find

# Buscar archivos .log mayores a 50 MiB y eliminarlos
find /var/log -name "*.log" -size +50M -delete

# Buscar archivos .conf y copiarlos a /backup (con confirmación)
find /etc -name "*.conf" -ok cp {} /backup/ \;

# Buscar archivos con permisos 777 y corregirlos a 644
find / -type f -perm 777 -exec chmod 644 {} +

# Buscar archivos que NO pertenezcan al usuario root en /etc
find /etc -not -user root

# Buscar archivos .sh o .py en el directorio actual
find . -name "*.sh" -o -name "*.py"

# Buscar archivos vacíos en /tmp y listarlos
find /tmp -type f -empty -print

# Buscar archivos modificados más recientemente que /etc/passwd
find /home -newer /etc/passwd

Alternativas al Comando find

Es importante aprender el comando find, especialmente porque suele venir preinstalado en sistemas operativos Unix y Unix-like (e.g., Linux). Sin embargo, existen varias alternativas interesantes:

Comando Descripción Preinstalado
locate Busca archivos rápidamente a partir de una base de datos indexada que puede actualizarse con updatedb. No refleja cambios en tiempo real. Depende de la distribución (mlocate / plocate)
fd Alternativa rápida, simple y amigable a find, escrita en Rust. Sintaxis intuitiva y salida con color por defecto. No

Referencias

Introducción a los Sistemas Operativos

Introducción a Linux

Licencias de Software

Archivos y Directorios

Introducción a la CLI

Manipulación de Archivos y Directorios

Documentación y Exploración de Comandos

Redirección

Búsqueda de Archivos y Texto

Editores de Texto de Terminal

Gestión de Usuarios y Grupos

Propiedad y Permisos

Herramientas Esenciales

Hardware

Apéndice

Clone this wiki locally