Comandos LinuxExplicados en español
/
Ficha30 / 104
Categoría
Texto
Ejemplos
6
Ver también
grep · ls · du

find

find (encontrar)

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.

Sintaxisfind [RUTA] [EXPRESIÓN]
Precaució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.

§ 1

Despiece

6 ejemplos
Buscar un archivo por su nombre

Buscar un archivo por su nombre

4 piezas
Lámina01 / 06
Comandofind /home -name reporte.pdf
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/homeArgumentoLa carpeta donde inicia la búsqueda.
3-nameOpciónBusca por el nombre exacto.
4reporte.pdfValorEl archivo que quieres encontrar.
Resultado

Lista la ruta completa de reporte.pdf si está en /home o en alguna subcarpeta.

Buscar sin importar mayúsculas

4 piezas
Lámina02 / 06
Comandofind /usr/share/doc -iname readme
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/usr/share/docArgumentoLa carpeta donde inicia la búsqueda.
3-inameOpciónBusca por nombre ignorando mayúsculas y minúsculas.
4readmeValorEl nombre que buscas, en minúsculas.
Resultado

Encuentra archivos llamados README, readme o Readme que no encontrarías con -name.

Buscar solo carpetas por nombre

6 piezas
Lámina03 / 06
Comandofind /var -type d -name log
Piezas6
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/varArgumentoLa carpeta donde inicia la búsqueda.
3-typeOpciónFiltra por tipo de elemento.
4dValord es de directory, es decir, solo carpetas.
5-nameOpciónFiltra además por nombre.
6logValorLa carpeta que buscas.
Resultado

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

4 piezas
Lámina04 / 06
Comandofind /home -size +100M
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/homeArgumentoLa carpeta donde inicia la búsqueda.
3-sizeOpciónFiltra por tamaño.
4+100MValorEl signo + significa más de, y M es megabytes. O sea, más de 100 MB.
Resultado

Lista los archivos de /home que ocupan más de 100 MB.

Ver lo que cambió en el último día

4 piezas
Lámina05 / 06
Comandofind /tmp -mtime -1
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/tmpArgumentoLa carpeta donde inicia la búsqueda.
3-mtimeOpciónBusca por la fecha en que se modificó el archivo.
4-1ValorEl guion antes del 1 significa hace menos de un día.
Resultado

Muestra los archivos y carpetas de /tmp que se modificaron en las últimas 24 horas.

Buscar por extensión

4 piezas
Lámina06 / 06
Comandofind /home -name '*.log'
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1findComandoEl comando para buscar archivos y carpetas.
2/homeArgumentoLa carpeta donde inicia la búsqueda.
3-nameOpciónBusca por nombre; aquí con un patrón.
4'*.log'ValorEl patrón entre comillas: cualquier nombre que termine en .log.
Resultado

Lista todos los archivos de /home con extensión .log. Las comillas evitan que la shell expanda el * antes de pasar a find.

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-nameBusca por nombre. Acepta comodines como '*.log', siempre entre comillas.
-inameBusca por nombre sin importar mayúsculas y minúsculas.
-typeFiltra por tipo: f para archivos, d para carpetas, l para enlaces.
-sizeBusca 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.
-mtimeBusca 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.
-maxdepthLimita cuántos niveles de subcarpetas revisa: -maxdepth 1 se queda en la carpeta que le diste.
-deleteBorra lo que encuentre, sin preguntar. Ponlo siempre al final y corre antes la misma búsqueda sin -delete.
§ 3

Fallas comunes

FallaRemedio
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'.
§ 4

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.
§ 5

Ver también