find
find es un comando común en sistemas Unix que se utiliza para encontrar archivos en un determinado directorio a partir de diversas reglas de búsqueda, tales como nombre exacto de archivo, fecha de creación, tamaño, permisos, etc. llegando a ser muy flexible y una de las herramientas más útiles en la administración de sistemas cuando se sabe utilizar.
En los sistemas GNU/Linux forma parte del paquete findutils.
Utilización de find
Si find devuelve el valor 0 significa que la búsqueda ha terminado de manera satisfactoria y puede continuar si corresponde con la ejecución de alguna acción sobre el resultado, en caso de error devuelve un valor mayor que 0.
Si no se especifica ningún directorio de búsqueda, find asume el directorio actual.
Buscar archivos y mostrar sus nombres
Para buscar todos los archivos dentro de un directorio con extensión .[1]
find /home/usuario -name "*.txt"
Para encontrar un archivo en todo el sistema, se debe buscarlo desde la carpeta raíz /
find / -name nombre_de_archivo
Buscar archivos por nombre de usuario
Para buscar un archivo por nombre de usuario:
find / -user nombreusuario
Esto mostrará todos los archivos del usuario a partir de la carpeta raíz / y todas sus subcarpetas.
Buscar archivos por tamaño de fichero
Para buscar archivos vacíos (el . indica el directorio en el que nos encontramos):
find . -size 0c
Para buscar archivos de un tamaño en kilobytes:
find . -size 54k
Buscar por expresiones regulares
El comando find permite la búsqueda utilizando expresiones regulares. Esto le da una potencia considerable. Por ejemplo si deseamos buscar archivos del tipo archivo01_01.txt, archivo02_03.txt, etc:
find . -regex './archivo0[1-2]_0[1-3].*'
Es válido el uso de expresiones regulares:[2]
find / -name "[0-9]*" (todo lo que empiece con un dígito)
find / -name "[Bb]*" (todo lo que empiece con un la letra B o b)
find / -name "[a-m]*.mp3" (todo lo que empiece entre a y m y termine en ".mp3")
Búsqueda por tamaño
Las unidades de tamaño son:[3]
- c – bytes
- k – kilobytes
- M – megabytes
- G – gigabytes
- b – trozos de 512 bytes
Para buscar archivos de un tamaño determinado, por ejemplo que tengan 20 Megabytes:
find / -size 20M
Para buscar archivos que tengan más de 5 Megabytes:
find / -size +5M
Véase también
Enlaces externos
- find(1): busca ficheros en un árbol de directorios – Comandos generales en el Manual de Ubuntu
- find(1) — Linux manual page Archivado el 26 de febrero de 2021 en Wayback Machine.
- GNU Findutils
- Comando find – 25 ejemplos prácticos
Referencias
- «Buscar archivos en Linux». WebTutoriales. Consultado el 3 de febrero de 2021.
- González D,, Sergio. «Encuentra cualquier cosa en Linux con find». LINUXTOTAL.com.mx. Consultado el 3 de febrero de 2021.
- «Cómo usar los comandos Find y Locate en Linux:». HOSTINGER TUTORIALES. 23 de diciembre de 2020. Consultado el 3 de febrero de 2021.