El comando find
se utiliza para buscar y localizar archivos y directorios basados en condiciones específicas como nombre de archivo, tamaño, fecha de modificación y otros atributos. Puedes usarlo para buscar en todo tu sistema de archivos o dentro de un directorio específico.
Es comúnmente utilizado por administradores de sistemas y usuarios regulares para localizar archivos rápidamente, especialmente en sistemas con una gran cantidad de archivos. Ya sea que estés buscando un documento perdido o necesites realizar operaciones masivas en un conjunto de archivos que cumplan con ciertos criterios, el comando find puede ser una herramienta esencial para administrar y organizar tu sistema de archivos.
Sintaxis general para el comando find
:
find [OPCIONES] [RUTA…] [EXPRESIÓN]
- Buscar un archivo específico en un directorio
- Encontrar y listar archivos de la misma extensión
- Encontrar y listar archivos vacíos y subdirectorios vacíos
- Encontrar y listar archivos que contienen texto específico
- Encontrar y listar archivos y subdirectorios propiedad de un usuario específico
- Encontrar y listar archivos y subdirectorios propiedad de un grupo específico
- Buscar archivos basados en el tiempo
Buscar un archivo específico en un directorio
find ./EjemploDir -name ejemplo.txt
Con el parámetro -name
, este comando intentará buscar ejemplo.txt
dentro del directorio EjemploDir
; y si se encuentra, devolverá la ruta al archivo.
./EjemploDir/subdir1/ejemplo.txt
./EjemploDir/subdir2/subsubdir/ejemplo.txt
Encontrar y listar archivos de la misma extensión
find ./nombreDirectorio -name "*.txt"
Este comando buscará, dentro del directorio EjemploDir
, todos los archivos que terminan con la extensión .txt. Si se encuentran, cada resultado se devolverá en una nueva línea.
find ./EjemploDir -name "*.txt"
./EjemploDir/archivo1.txt
./EjemploDir/archivo2.txt
./EjemploDir/subdir/archivo3.txt
./EjemploDir/subdir/otro_subdir/archivo4.txt
Encontrar y listar archivos vacíos y subdirectorios vacíos
find ./nombreDirectorio -empty
Este comando, con el parámetro -empty
, encontrará y listará todos los archivos vacíos y subcarpetas vacías dentro de la carpeta nombreDirectorio
.
./nombreDirectorio/archivo_vacío.txt
./nombreDirectorio/subdirectorio_vacío/
Esto indicaría que se ha encontrado un archivo vacío llamado “archivo_vacío.txt” y un subdirectorio vacío llamado “subdirectorio_vacío” dentro del directorio “nombreDirectorio”.
Definición de archivo vacío siendo 0 bytes de tamaño de archivo, y carpeta vacía sin archivos o archivos de 0 bytes.
Encontrar y listar archivos que contienen texto específico
find ./nombreDirectorio -type f -name "*.txt" -exec grep 'Ejemplo' {} \;
Este comando busca la palabra/cadena “Ejemplo
” dentro de los archivos con la extensión .txt
dentro del directorio nombreDirectorio.
./nombreDirectorio/archivo1.txt:Esta es una línea de Ejemplo en el archivo1.
./nombreDirectorio/subdir/archivo2.txt:Otro Ejemplo en un archivo diferente.
./nombreDirectorio/archivo3.txt:Uso de Ejemplo del comando find.
Encontrar y listar archivos y subdirectorios propiedad de un usuario específico
find ./nombreDirectorio -user ubuntu
Este comando, con el parámetro -user
, encontrará archivos y subdirectorios propiedad del usuario Ubuntu
en el directorio nombreDirectorio
. Si se encuentran, se devolverán los nombres de archivo(s).
En el siguiente resultado de muestra ls -l
:
-rw-rw-r-- 1 nuevo ubuntu 20 Jan 27 06:24 ejemplo.txt
nuevo
representa el nombre del grupo, y ubuntu
es el usuario.
Encontrar y listar archivos y subdirectorios propiedad de un grupo específico
find ./nombreDirectorio -group ubuntu
Este comando, con el parámetro -group
, encontrará todos los archivos y subdirectorios propiedad del grupo Ubuntu
en el directorio nombreDirectorio
. Si se encuentran, se devolverán los nombres de archivo(s).
Buscar archivos basados en el tiempo
find ./nombreDirectorio -type f -mtime +7
Este comando busca archivos dentro del directorio nombreDirectorio
que hayan sido modificados hace más de 7 días. Aquí está la explicación de los componentes del comando:
./nombreDirectorio
: Especifica el directorio donde se realizará la búsqueda.-type f
: Limita la búsqueda a archivos regulares (no directorios ni otros tipos de archivos).-mtime +7
: Filtra los archivos según la última vez que se modificaron. El+7
significa “más de 7 días”. Esto buscará archivos que hayan sido modificados hace más de 7 días.
Puedes ajustar el número después de +
para cambiar la cantidad de días. Por ejemplo, +30
buscaría archivos modificados hace más de 30 días.
Más comandos de Linux:
Operaciones de Directorios | rmdir · cd · pwd · exa · ls |
Operaciones de Archivos | cat · cp · dd · less · touch · ln · rename · more · head |
Operaciones de Sistema de Archivos | chown · mkfs · locate |
Redes | ping · curl · wget · iptables · mtr |
Búsqueda y Procesamiento de Texto | find · grep · sed · whatis · ripgrep · fd · tldr |
Información y Gestión del Sistema | env · history · top · who · htop · glances · lsof |
Gestión de Usuarios y Sesiones | screen · su · sudo · open |
Pingback: Comando ls: Cómo Listar Archivos y Carpetas en Linux » Blog Linux