Objetivo:
Profundizar en el uso del comando find aprendiendo a filtrar resultados por tipo de fichero mediante la opción -type, por fecha de acceso, modificación o cambio de metadatos mediante -atime, -mtime y -ctime, y por tamaño mediante la opción -size.
Escenario:
- Herramientas: Terminal de Linux y un sistema Debian o basado en Debian.
- Conceptos clave:
find -type, ficheros regulares, directorios, enlaces, dispositivos de caracteres y de bloque,-atime,-mtime,-ctime,-size.
Instrucciones:
Fase 1: Búsqueda por tipo de fichero (ficheros, directorios y enlaces)
- Abre una terminal y accede a tu directorio personal:
- Busca todos los ficheros de tipo regular a partir del directorio actual:
- Cuenta cuántos resultados se han obtenido mediante una tubería:
- Busca ahora todos los directorios:
- Cuenta cuántos directorios se han encontrado:
- Busca todos los enlaces:
- Cuenta cuántos enlaces se han encontrado:
cd
find . -type f
find . -type f | wc -l
find . -type d
find . -type d | wc -l
find . -type l
find . -type l | wc -l
Fase 2: Búsqueda de dispositivos de caracteres y de bloque
- Accede al directorio
/dev, donde se encuentran los dispositivos del sistema: - Busca los dispositivos de tipo carácter:
- Cuenta cuántos dispositivos de tipo carácter se han encontrado:
- Busca los dispositivos de tipo bloque:
- Cuenta cuántos dispositivos de tipo bloque se han encontrado:
cd /dev
find . -type c
find . -type c | wc -l
find . -type b
find . -type b | wc -l
Fase 3: Búsqueda por fecha de acceso (-atime)
- Vuelve a tu directorio personal:
- Lista los ficheros de tu directorio con detalle para tener una referencia de sus fechas:
- Busca los ficheros y directorios que han sido accedidos hace más de dos días:
- Busca ahora los ficheros y directorios accedidos dentro de las últimas 24 horas:
- Compara ambos resultados y anota la diferencia de significado entre
+2y-1.
cd
ls -l
find . -atime +2
find . -atime -1
Fase 4: Búsqueda por fecha de modificación (-mtime) y de cambio de metadatos (-ctime)
- Busca los ficheros modificados después de las últimas 24 horas:
- Busca ahora los ficheros modificados después de las últimas 48 horas:
- Compara la cantidad de resultados obtenidos en ambos casos.
- Busca los ficheros cuyos metadatos han sido actualizados en las últimas 24 horas:
find . -mtime +1
find . -mtime +2
find . -ctime 1
Fase 5: Búsqueda por tamaño (-size)
- Busca en tu directorio personal los ficheros que ocupen más de 5 megabytes:
- Busca ahora los ficheros que ocupen más de 5 kilobytes:
- Busca los ficheros que ocupen más de 100 kilobytes:
find . -size +5M
find . -size +5k
find . -size +100k
Fase 6: Búsqueda por tamaño en el directorio de logs
- Accede al directorio donde el sistema almacena sus registros:
- Busca, con privilegios de administrador si es necesario, los ficheros que ocupen más de un gigabyte:
- Si no se encuentra ningún resultado, repite la búsqueda con un tamaño menor, por ejemplo 100 kilobytes:
- Observa los mensajes de permiso denegado que puedan aparecer al no tener acceso a determinados ficheros de registro.
cd /var/log
sudo find . -size +1G
sudo find . -size +100k
Preguntas de reflexión:
- ¿Qué diferencia hay entre
find . -type f,find . -type dyfind . -type l? - ¿Por qué los dispositivos de tipo carácter y de tipo bloque solo suelen encontrarse en el directorio
/dev? - ¿Qué diferencia existe entre un dispositivo de tipo carácter y uno de tipo bloque? Pon un ejemplo de cada uno.
- ¿Qué significa colocar un signo
+delante del número en opciones como-atime +2? ¿Y no colocarlo? - ¿Qué diferencia existe entre
-atimey-mtime? - ¿Para qué sirve la opción
-ctimey en qué se diferencia de-mtime? - ¿Cómo se indica en la opción
-sizeque se buscan ficheros de más de un determinado tamaño? - ¿Qué letras se utilizan con
-sizepara indicar kilobytes, megabytes y gigabytes? - ¿Por qué el directorio
/var/logsuele contener ficheros de gran tamaño con el paso del tiempo? - ¿Para qué puede resultar útil a un administrador de sistemas buscar ficheros por tamaño con
find -size?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué diferencia hay entre find . -type f, find . -type d y find . -type l?
-type f busca ficheros regulares, -type d busca directorios y -type l busca enlaces.
2. ¿Por qué los dispositivos de tipo carácter y de tipo bloque solo suelen encontrarse en el directorio /dev?
Porque este directorio es el que Linux utiliza para representar los dispositivos hardware del sistema como si fueran ficheros, por lo que es el lugar habitual donde se concentran los ficheros de tipo dispositivo.
3. ¿Qué diferencia existe entre un dispositivo de tipo carácter y uno de tipo bloque? Pon un ejemplo de cada uno.
Los dispositivos de tipo carácter transmiten datos de manera secuencial, carácter a carácter (por ejemplo, un teclado o un monitor). Los dispositivos de tipo bloque transmiten datos en bloques, como es el caso de un disco duro o una memoria de almacenamiento.
4. ¿Qué significa colocar un signo + delante del número en opciones como -atime +2? ¿Y no colocarlo?
El signo + indica "más de" ese número de días (o del periodo correspondiente), mientras que un número sin signo o con signo negativo busca dentro de ese periodo o de manera más reciente.
5. ¿Qué diferencia existe entre -atime y -mtime?
-atime busca según la fecha en la que el fichero fue accedido o leído por última vez, mientras que -mtime busca según la fecha en la que el contenido del fichero fue modificado por última vez.
6. ¿Para qué sirve la opción -ctime y en qué se diferencia de -mtime?
-ctime busca según la fecha en la que se actualizaron los metadatos del fichero (como sus permisos o propietario), mientras que -mtime se refiere específicamente a cambios en el contenido del fichero.
7. ¿Cómo se indica en la opción -size que se buscan ficheros de más de un determinado tamaño?
Colocando el signo + delante del número que indica el tamaño, seguido de la letra correspondiente a la unidad deseada.
8. ¿Qué letras se utilizan con -size para indicar kilobytes, megabytes y gigabytes?
Se utiliza k para kilobytes, M para megabytes y G para gigabytes.
9. ¿Por qué el directorio /var/log suele contener ficheros de gran tamaño con el paso del tiempo?
Porque en este directorio se almacenan los registros de actividad del sistema, que se van acumulando de forma continua, por lo que los ficheros de log tienden a crecer con el uso y la antigüedad del sistema.
10. ¿Para qué puede resultar útil a un administrador de sistemas buscar ficheros por tamaño con find -size?
Permite localizar rápidamente los ficheros que están ocupando más espacio en disco, lo cual resulta muy útil para controlar el uso del almacenamiento y detectar ficheros que conviene revisar, comprimir o eliminar.
Ficha de Laboratorio: Filtrado avanzado con find (tipo, fecha y tamaño)
Instrucciones de entrega:
- Rellena los campos y responde en este formulario desde tu navegador.
- Pulsa el botón de imprimir al final de la página.
- Selecciona "Guardar como PDF" en el diálogo de impresión.
- Entrega el archivo PDF en el aula virtual.
Alumno/a: Fecha:
Grupo:
Completa la ficha realizando las siguientes actividades:
- Busca ficheros, directorios y enlaces en tu directorio personal usando
find -type.
Escribe los tres comandos utilizados:
Copia aquí el número de resultados obtenido en cada caso:
- Busca dispositivos de tipo carácter y de tipo bloque en el directorio
/dev.
Escribe ambos comandos utilizados:
Copia aquí el número de resultados obtenido en cada caso:
Anota un ejemplo de cada tipo de dispositivo que hayas identificado:
- Busca ficheros accedidos hace más de dos días y ficheros accedidos en las últimas 24 horas.
Escribe ambos comandos utilizados:
Copia aquí algunos de los resultados obtenidos:
Explica la diferencia entre usar+2y-1:
- Busca ficheros modificados hace más de 24 horas y hace más de 48 horas con
-mtime.
Escribe ambos comandos utilizados:
Compara el número de resultados obtenido en cada caso:
- Busca en tu directorio personal ficheros de más de 5 megabytes, más de 5 kilobytes y más de 100 kilobytes.
Escribe los tres comandos utilizados:
Copia aquí algunos de los resultados obtenidos:
- Busca en el directorio
/var/logficheros de gran tamaño.
Escribe el comando utilizado:
Copia aquí los resultados obtenidos, o indica si has tenido que reducir el tamaño buscado:
Explica por qué esta opción es útil para un administrador de sistemas: