Al momento de buscar archivos en Linux usando la consola puede ser algo difícil especialmente si no estás familiarizado con esta tarea. De un inicio puede asustarte un poco pero cuando lo conoces lo amarás.
Este comando es muy útil si necesitamos realizar una búsqueda recursiva de archivos o directorios porque tiene muchos parámetros que podemos usar para personalizar nuestra búsqueda a un nivel superior que cualquier buscador en un entorno gráfico. Otra de sus grandes ventajas y que yo en lo particular valoro mucho es que las búsquedas son muy rápidas y se valora aún más cuando tenemos que buscar archivos en directorios muy grandes.
Sintaxis
find [parámetros] [directorio donde se inicia la búsqueda] [expresión de búsqueda]
Parámetros
- -name: buscar un archivo que coincida con el nombre proporcionado con este parámetro respetando mayúsculas y minúsculas.
- -iname: Busca una coincidencia con el nombre de un archivo de forma insensible a las mayúsculas y minúsculas.
- -type: busca por tipo de archivo o directorio.
- -exec: cada archivo o directorio encontrado es enviado como parámetro a un comando externo. De esta forma podríamos buscar en cada archivo encontrado una cadena en particular si usamos grep, o si lo combinamos con ffmpeg podríamos cambiar de formato todos los archivos AVI encontrados a MP4.
- -writable: coincidencia con archivos o directorios con permiso de escritura.
-executable: coincidencia con archivos o directorios con permiso de ejecución. - -not: negar una coincidencia. Es decir: poder buscar todos los archivos que no coincidan con el nombre de un archivo.
Ejemplos del comando find
A continuación, te quiero mostrar unos ejemplos básicos y otros muy específicos que son muy útiles.
Buscar un archivo por nombre
find /home/juan/Documentos -name trabajo.txt
La línea anterior se divide en 3 partes:
- find: es el comando para buscar archivos.
- /home/juan/Documentos: es la carpeta donde va a iniciar la búsqueda recursiva
- -name trabajo.txt: es el archivo que va a buscar, puedes usar -iname si no recuerdas si tiene mayúsculas.
Buscar todos los archivos por extensión
Para buscar todos los archivos que compartan la misma extensión, podemos usar el comodín * para sustituir el nombre.
find /home/juan/Documento -name *.txt
Buscar por tipo
Habrá ocasiones que necesitemos buscar uno o varios directorios, pero queremos filtrar todos los archivos que coincidan con el nombre de algún archivo.
find /home -type d -iname "documento"
Buscar directorios escribibles
Con la siguiente línea podrás encontrar todos los directorios con permiso de escritura.
find /home/juan -writable -type d
Buscar archivos ejecutables
Con la siguiente línea podrás buscar todos tus archivos ejecutables que tengas en Documentos (por mencionar un directorio)
find / home/juan/Documento -executable -type f
Buscar un archivo por usuario
Busca todos los archivos que son propietarios de un usuario en particular