Comando find en Linux: Buscar Archivos por Nombre, Tipo y Fecha
El comando find busca archivos y directorios directamente en el sistema de archivos. Dependiendo del tamaño del sistema de archivos, este comando puede ser muy demorado.
Su sintaxis básica es:
$ find [caminho] [expressão]
Debes indicar un punto de inicio de la búsqueda en el árbol de directorios de Linux. Si quieres que comience en la raíz, indica "/". Si quieres que la búsqueda se inicie desde el directorio actual, usa como ruta "./" o simplemente punto ".".
El find permite una infinidad de expresiones como opciones de búsqueda, tales como nombre, tamaño, fecha de creación de archivo, fecha de acceso, por tipo de archivo, permisos, etc.
Ejemplos:
Busca el archivo texto.txt desde la raíz (/), del tipo archivo (f):
$ find / -name texto.txt -type f
Busca todos los archivos con extensión .txt desde el directorio actual (.):
$ find . -name “*.txt”
Busca el directorio "usuarios" desde el directorio actual, independientemente de si está escrito con mayúsculas o minúsculas:
$ find . -iname usuarios -type d
Busca archivos que no terminan con .html desde el directorio actual:
$ find . -type f -not -name “*.html”
El find también permite ejecutar un comando con la lista de archivos que encuentre. En este ejemplo, el find copia todos los archivos .mp3 encontrados desde el directorio actual hacia /tmp:
$ find . -type f -name “*.mp3” -exec cp {} /tmp/ \;
Elimina todos los directorios BACKUP encontrados desde el directorio actual:
$ find . -type d -name BACKUP -exec rm -r {} \;
Busca los archivos modificados en los últimos 7 días:
$ find . -mtime -7 -type f
Buscar archivos editados antes de 5 días
$ find -mtime +5
Elimina los archivos de backup con más de 15 días:
$ find /backup/ -type f -mtime +15 -exec rm -f {} \;
Elimina todos los archivos objeto encontrados desde el directorio actual:
$ find . -name "*.o" -type f -exec rm -f {} \;
Copia todos los archivos alterados en los últimos 2 días al directorio /tmp:
$ find . -type f -mtime -2 -exec cp {} /tmp \;
También es posible buscar un archivo más reciente que un archivo determinado:
$ find -newer arquivo-fonte.c
Busca archivos con permiso 0777:
$ find . -type f -perm 0777 –print
Busca todos los archivos con más de 50Mb:
$ find / -size +50M
Se pueden combinar las opciones, como para buscar archivos con extensión .php alterados en las últimas 48 horas:
$ find -name '*.php' -mtime -2
El find también puede usarse para crear una lista de los archivos de un directorio, que puede ordenarse con el comando sort:
$ find | sort../CapituloForm.php./CapituloList.php./Form.php./List.php./SubcapituloForm.php./SubcapituloList.php
Conclusión
El comando find es una herramienta poderosa para encontrar archivos y directorios, basados en nombre, permisos, atributos, tamaño, propiedad (por usuario o por grupo), etc. Puede usarse para recorrer el sistema para encontrar programas con permisos de suid, corregir permisos, hacer backup, etc.
Aprende mucho más sobre Linux en nuestro curso en línea. Puedes realizar la inscripción aquí. Si ya tienes una cuenta, o quieres crear una, simplemente ingresa o crea tu usuario aquí.
¿Te gustó? Comparte
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.