Encontrar Archivos por Propietario, Permisos, Tamaño y Tiempo
En este paso, aprenderá a usar el potente comando find para localizar archivos basándose en varios criterios más allá de su nombre. Esto incluye la búsqueda por propietario, permisos, tamaño y tiempo de modificación. Estas capacidades de búsqueda avanzadas son esenciales para tareas de administración del sistema como auditoría, limpieza y solución de problemas.
Encontrar Archivos por Propietario
Puede buscar archivos propiedad de un usuario o grupo específico utilizando las opciones -user y -group, respectivamente. Puede especificar el nombre del usuario/grupo o su ID numérico.
Busquemos todos los archivos en su directorio de inicio (~) que sean propiedad del usuario labex.
find ~ -user labex
Esto mostrará una lista de muchos archivos, incluidos sus archivos de configuración:
/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...
De manera similar, para encontrar archivos propiedad del grupo labex:
find ~ -group labex
La salida será similar, ya que labex es típicamente el grupo principal para el usuario labex.
También puede buscar por ID de Usuario (UID) o ID de Grupo (GID). El usuario labex típicamente tiene un UID y GID de 1000.
find ~ -uid 1000
find ~ -gid 1000
Encontrar Archivos por Permisos
La opción -perm del comando find le permite buscar archivos con permisos específicos. Los permisos se pueden especificar en modo octal (por ejemplo, 755) o simbólico (por ejemplo, u=rwx,g=rx,o=rx).
Creemos un archivo de prueba en su directorio ~/project con permisos específicos.
touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt
Ahora, busquemos archivos en ~/project que tengan exactamente permisos 644.
find ~/project -perm 644
Debería ver permission_test.txt listado:
/home/labex/project/permission_test.txt
También puede usar un / o - inicial con los permisos octales:
/: Coincide si cualquiera de los bits de permiso especificados están configurados.
-: Coincide si todos los bits de permiso especificados están configurados.
Busquemos archivos en ~/project donde otros tengan al menos permiso de lectura (o=r o 004).
find ~/project -perm -004
Esto mostrará permission_test.txt y otros archivos que otorgan acceso de lectura a otros.
/home/labex/project/permission_test.txt
...output omitted...
Encontrar Archivos por Tamaño
La opción -size le permite buscar archivos en función de su tamaño. Puede especificar el tamaño con unidades (por ejemplo, k para kilobytes, M para megabytes, G para gigabytes). También puede usar + para "mayor que" y - para "menor que".
Busquemos archivos en su directorio ~/project/test_data que tengan exactamente 1 kilobyte de tamaño.
find ~/project/test_data -size 1k
Debería ver file1.txt:
/home/labex/project/test_data/file1.txt
Ahora, encuentre archivos mayores de 5 kilobytes.
find ~/project/test_data -size +5k
Esto debería listar file3.txt:
/home/labex/project/test_data/file3.txt
Y archivos menores de 10 kilobytes.
find ~/project/test_data -size -10k
Esto debería listar file1.txt y file2.txt:
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
Encontrar Archivos por Tiempo de Modificación
Puede buscar archivos en función de su tiempo de modificación utilizando opciones como -mmin (modificado hace minutos) o -mtime (modificado hace días).
Busquemos archivos en su directorio ~/project que se modificaron en los últimos 60 minutos.
find ~/project -mmin -60
Esto probablemente incluirá permission_test.txt y los archivos en test_data si los creó recientemente:
/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
Para encontrar archivos modificados hace más de 1 día (24 horas), puede usar +1 con -mtime.
find ~/project -mtime +1
Este comando podría no devolver ningún archivo si todos sus archivos ~/project se crearon o modificaron recientemente.
Estas opciones se pueden combinar para crear consultas de búsqueda muy específicas, lo que le permite administrar archivos de manera eficiente en su sistema.