find
Busca archivos y carpetas por nombre, tipo o tamaño.
Sirve para localizar archivos y carpetas según cómo se llaman, qué son o cuánto ocupan. Lo usas cuando pierdes un archivo, quieres encontrar los que pesan demasiado o necesitas ver qué cambió en una carpeta.
find [RUTA] [EXPRESIÓN]Al combinarlo con -delete o -exec puede borrar o modificar archivos sin pedir confirmación. Corre el find primero, revisa la lista y solo entonces agrega -delete.
Despiece
6 ejemplosBuscar un archivo por su nombre
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /home | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -name | Opción | Busca por el nombre exacto. |
| 4 | reporte.pdf | Valor | El archivo que quieres encontrar. |
Lista la ruta completa de reporte.pdf si está en /home o en alguna subcarpeta.
Buscar sin importar mayúsculas
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /usr/share/doc | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -iname | Opción | Busca por nombre ignorando mayúsculas y minúsculas. |
| 4 | readme | Valor | El nombre que buscas, en minúsculas. |
Encuentra archivos llamados README, readme o Readme que no encontrarías con -name.
Buscar solo carpetas por nombre
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /var | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -type | Opción | Filtra por tipo de elemento. |
| 4 | d | Valor | d es de directory, es decir, solo carpetas. |
| 5 | -name | Opción | Filtra además por nombre. |
| 6 | log | Valor | La carpeta que buscas. |
Muestra solo carpetas llamadas log, como /var/log, y deja fuera los archivos. Sin sudo verás algunos Permission denied en carpetas que no puedes leer.
Encontrar archivos pesados
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /home | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -size | Opción | Filtra por tamaño. |
| 4 | +100M | Valor | El signo + significa más de, y M es megabytes. O sea, más de 100 MB. |
Lista los archivos de /home que ocupan más de 100 MB.
Ver lo que cambió en el último día
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /tmp | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -mtime | Opción | Busca por la fecha en que se modificó el archivo. |
| 4 | -1 | Valor | El guion antes del 1 significa hace menos de un día. |
Muestra los archivos y carpetas de /tmp que se modificaron en las últimas 24 horas.
Buscar por extensión
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | find | Comando | El comando para buscar archivos y carpetas. |
| 2 | /home | Argumento | La carpeta donde inicia la búsqueda. |
| 3 | -name | Opción | Busca por nombre; aquí con un patrón. |
| 4 | '*.log' | Valor | El patrón entre comillas: cualquier nombre que termine en .log. |
Lista todos los archivos de /home con extensión .log. Las comillas evitan que la shell expanda el * antes de pasar a find.
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -name | Busca por nombre. Acepta comodines como '*.log', siempre entre comillas. |
| -iname | Busca por nombre sin importar mayúsculas y minúsculas. |
| -type | Filtra por tipo: f para archivos, d para carpetas, l para enlaces. |
| -size | Busca por tamaño: +50M es más de 50 MB y +1G más de 1 GB. Para kilobytes se usa k minúscula, por ejemplo -size -10k. |
| -mtime | Busca por días desde la última modificación: -mtime -1 es lo que cambió en las últimas 24 horas y -mtime +30 lo que lleva más de 30 días sin cambios. |
| -maxdepth | Limita cuántos niveles de subcarpetas revisa: -maxdepth 1 se queda en la carpeta que le diste. |
| -delete | Borra lo que encuentre, sin preguntar. Ponlo siempre al final y corre antes la misma búsqueda sin -delete. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Buscar en todo el disco con find / y tardar muchísimo. | Empieza por una ruta acotada como find . o find /home. Si de verdad necesitas buscar en todo el sistema, agrega 2>/dev/null al final para esconder los mensajes de Permission denied. |
| Usar -delete sin probar la búsqueda antes. | Primero corre el find sin -delete para ver la lista. Cuando confirmes que son los correctos, agrega -delete al final: si lo pones antes de los filtros, borra todo lo que hay en la ruta. |
| No encontrar nada por culpa de las mayúsculas. | -name distingue mayúsculas y -iname no. Si no estás seguro de cómo se llama el archivo, usa -iname. |
| Buscar por extensión sin comillas y obtener resultados raros o un error. | Si en la carpeta actual hay archivos .log, la shell cambia el * por sus nombres antes de llegar a find: buscas otra cosa o sale el error paths must precede expression. Escríbelo entre comillas: -name '*.log'. |
Preguntas frecuentes
- ¿Cómo busco un archivo por su nombre?
- Usa find con la ruta y -name: find /home -name reporte.pdf. Si no recuerdas si lleva mayúsculas, usa -iname.
- ¿Cuál es la diferencia entre find y grep?
- find busca archivos y carpetas por nombre, tipo o tamaño. grep busca texto dentro del contenido de los archivos. Uno encuentra el archivo, el otro encuentra la línea.
- ¿Cómo encuentro los archivos más grandes?
- Con la opción -size: find /home -type f -size +100M lista los archivos de más de 100 MB. Si no sale nada, baja el límite a +10M; si salen demasiados, súbelo a +1G.
- ¿Cómo busco solo carpetas?
- Agrega -type d: find /home -type d lista solo carpetas. Para ver solo archivos usa -type f en su lugar.
- ¿Cómo borro archivos con find?
- Primero lista lo que vas a borrar, por ejemplo find /tmp -name '*.tmp' -mtime +7. Si la lista está bien, repite el mismo comando con -delete al final. No hay papelera: lo que borra find no se recupera.