Cómo usar el comando find en Linux
¿Cómo buscar archivos en Linux? ¿Cómo encontrar cosas en el sistema? ¿Cómo usar find? Estas son preguntas comunes que todo usuario se hace tarde o temprano. En esta guía veremos cómo utilizar el comando find para localizar ficheros, aplicar filtros y ejecutar acciones sobre ellos.
1. Uso básico de find
Si ejecutas find sin argumentos, buscará todos los ficheros y directorios desde el punto donde lo ejecutes. Para que sea útil, debes indicarle:
- La ruta donde buscar.
- El nombre del fichero que deseas encontrar.
Ejemplo: buscar pepito.txt en tu directorio HOME:
$ find /home/jespinal/ -name "pepito.txt"
Usar comillas dobles es recomendable si el nombre incluye comodines como * o ?.
2. Uso intermedio de find
Si no recuerdas el nombre exacto del fichero, puedes usar comodines:
$ find / -name "*pep*"
Esto buscará cualquier fichero o directorio que contenga “pep” en su nombre, en cualquier parte del sistema.
Cuando realizas búsquedas exhaustivas en todo el sistema de archivos, especialmente con find /, los tiempos de respuesta pueden ser significativamente más rápidos con un SSD moderno de alta velocidad, ya que reduce drásticamente el tiempo de acceso a los inodos y metadatos durante las operaciones de búsqueda, haciendo que explorar grandes volúmenes de datos sea mucho más eficiente.
3. Uso semi-avanzado de find
Para buscar por tipo de fichero, usa -type. Ejemplo: listar ficheros regulares en tu HOME:
$ find /home/jespinal -type f
Tipos disponibles:
b: bloque especialc: carácter especiald: directoriop: tubería (pipe)f: fichero regularl: vínculo simbólicos: socketD: puerta (Solaris)
4. Ejemplos prácticos
- Buscar ficheros .log:
$ find / -type f -name "*.log"
- Buscar y eliminar ficheros .tmp:
$ find / -type f -name "*.tmp" -delete
- Copiar ficheros regulares al directorio /tmp:
$ find . -type f -exec cp '{}' /tmp \;
Nota: {} representa cada fichero encontrado. El \; evita que el shell interprete el punto y coma.
- Buscar ficheros con permisos 644:
$ find . -perm 664
- Buscar archivos .c mayores a 100k en /usr/src:
$ find /usr/src -name '*.c' -size +100k -print
Usar comillas evita que el shell interprete el comodín *.
Con estos ejemplos ya puedes usar find para localizar, filtrar y manipular ficheros en Linux. Para más opciones, consulta man find.
Si deseas profundizar en el uso avanzado de find y otros comandos esenciales de Linux, un libro de referencia sobre administración y comandos de Linux te proporcionará técnicas avanzadas, combinaciones de comandos y casos de uso prácticos que van más allá de la documentación básica, ayudándote a dominar herramientas como find, grep y otras utilidades del sistema.