Lab 3.3 - Búsqueda de Archivos y Enlaces
Objetivos
Al final de este laboratorio, usted será capaz de:
- Buscar archivos con find y locate
- Crear enlaces simbólicos
- Crear enlaces duros
- Comprender las diferencias entre los tipos de enlaces
- Utilizar los enlaces en escenarios prácticos
Prerrequisitos
- Ubuntu 24.04 instalado
- Terminal abierto
- Acceso de usuario normal
Ejercicio 1: Búsqueda con find
Paso 1: Búsqueda Básica
# Crear archivos de prueba
mkdir -p ~/test-search/{docs,scripts,data}
touch ~/test-search/docs/{file1.txt,file2.txt}
touch ~/test-search/scripts/{script1.sh,script2.sh}
touch ~/test-search/data/{data1.csv,data2.csv}
# Buscar por nombre
find ~/test-search -name "file1.txt"
# Buscar con wildcards
find ~/test-search -name "*.txt"
# Buscar por tipo
find ~/test-search -type f # Solo archivos
find ~/test-search -type d # Solo directorios
Paso 2: Búsqueda Avanzada
# Por tamaño
find ~/test-search -size +1M # Más de 1MB
find ~/test-search -size -1k # Menos de 1KB
# Por fecha de modificación
find ~/test-search -mtime -1 # Modificados en las últimas 24h
find ~/test-search -mtime +7 # Modificados hace más de 7 días
# Por permisos
find ~/test-search -perm 755
# Combinaciones
find ~/test-search -name "*.txt" -mtime -1
Paso 3: Ejecutar Comandos
# Buscar y eliminar (¡cuidado!)
find ~/test-search -name "*.tmp" -delete
# Buscar y mostrar
find ~/test-search -name "*.txt" -exec ls -lh {} \;
# Buscar y contar
find ~/test-search -type f | wc -l
Ejercicio 2: locate
Paso 1: Instalación y Configuración
# Instalar locate
sudo apt update
sudo apt install mlocate
# Actualizar la base de datos
sudo updatedb
# Buscar
locate file1.txt
# Búsqueda insensible a mayúsculas/minúsculas
locate -i file
Paso 2: Limitar los Resultados
# Limitar el número de resultados
locate file | head -10
# Contar
locate file | wc -l
Ejercicio 3: Enlaces Simbólicos
Paso 1: Crear Enlaces Simbólicos
# Crear un archivo
echo "Contenu original" > ~/original.txt
# Crear un enlace simbólico
ln -s ~/original.txt ~/lien-symbolique.txt
# Ver el enlace
ls -l ~/lien-symbolique.txt
# Nota la flecha: lien-symbolique.txt -> /home/user/original.txt
# Leer a través del enlace
cat ~/lien-symbolique.txt
Paso 2: Enlaces Simbólicos a Directorios
# Crear un enlace a un directorio
ln -s ~/test-search ~/lien-repertoire
# Usar el enlace
ls ~/lien-repertoire
cd ~/lien-repertoire
Paso 3: Enlaces Simbólicos Absolutos vs Relativos
cd ~/test-search
# Enlace absoluto
ln -s /home/$USER/original.txt lien-absolu.txt
# Enlace relativo
ln -s ../original.txt lien-relatif.txt
# Ver la diferencia
ls -l lien-*.txt
Ejercicio 4: Enlaces Duros
Paso 1: Crear Enlaces Duros
# Crear un archivo
echo "Contenu" > ~/fichier-original.txt
# Crear un enlace duro
ln ~/fichier-original.txt ~/lien-dur.txt
# Ver ambos archivos
ls -li ~/fichier-original.txt ~/lien-dur.txt
# Nota: mismo inode (primer número)
Paso 2: Propiedades de los Enlaces Duros
# Modificar a través del enlace duro
echo "Nouveau contenu" >> ~/lien-dur.txt
# Ver el archivo original
cat ~/fichier-original.txt # ¡Contenido modificado!
# Contar los enlaces
ls -l ~/fichier-original.txt
# El número después de los permisos = número de enlaces duros
Paso 3: Eliminar un Enlace Duro
# Eliminar el archivo "original"
rm ~/fichier-original.txt
# ¡El enlace duro sigue existiendo!
cat ~/lien-dur.txt # Contenido sigue ahí
# Verificar los inodes
ls -li ~/lien-dur.txt
Ejercicio 5: Comparación Enlaces Simbólicos vs Duros
Paso 1: Prueba de Eliminación
# Crear archivo, enlace simbólico y enlace duro
echo "Test" > test.txt
ln -s test.txt lien-sym.txt
ln test.txt lien-dur.txt
# Eliminar el archivo original
rm test.txt
# Probar el enlace simbólico
cat lien-sym.txt # ❌ Error: archivo no encontrado
# Probar el enlace duro
cat lien-dur.txt # ✅ ¡Sigue funcionando!
Paso 2: Limitaciones de los Enlaces Duros
# Los enlaces duros no funcionan para:
# 1. Directorios
# ln dir1 dir2 # ❌ Error
# 2. Sistemas de archivos diferentes
# ln /mnt/external/file.txt ~/lien.txt # ❌ Error si FS diferente
# 3. Los enlaces simbólicos pueden cruzar FS
ln -s /mnt/external/file.txt ~/lien-sym.txt # ✅ Funciona
Ejercicio 6: Casos de Uso Prácticos
Paso 1: Scripts en el PATH
# Crear un script
cat > ~/mon-script.sh << 'EOF'
#!/bin/bash
echo "Script exécuté!"
EOF
chmod +x ~/mon-script.sh
# Crear un enlace en un directorio del PATH
sudo ln -s ~/mon-script.sh /usr/local/bin/mon-script
# Usar desde cualquier lugar
mon-script
Paso 2: Versiones de Software
# Simular versiones
mkdir -p ~/app/{v1.0,v2.0}
echo "Version 1.0" > ~/app/v1.0/app.txt
echo "Version 2.0" > ~/app/v2.0/app.txt
# Enlace a la versión actual
ln -s ~/app/v2.0 ~/app/current
# Usar
cat ~/app/current/app.txt
# Cambiar de versión fácilmente
rm ~/app/current
ln -s ~/app/v1.0 ~/app/current
Paso 3: Configuración
# Archivo de configuración en home
echo "config=value" > ~/.myapp-config
# Enlace desde /etc
sudo ln -s ~/.myapp-config /etc/myapp-config
# Usar
cat /etc/myapp-config
Verificación
Checklist
Verifique que usted puede:
- Buscar archivos con find
- Usar locate para búsqueda rápida
- Crear enlaces simbólicos (ln -s)
- Crear enlaces duros (ln)
- Comprender las diferencias entre ambos tipos
- Utilizar los enlaces en escenarios prácticos
Preguntas de Reflexión
-
¿Cuándo usar un enlace simbólico vs un enlace duro?
- Simbólico: directorios, archivos en diferentes FS, versiones
- Duro: mismo FS, respaldo de seguridad
-
¿Por qué los enlaces duros comparten el mismo inode?
- Apuntan a los mismos datos en el disco
- El archivo solo se elimina cuando se eliminan todos los enlaces
-
¿Cuál es la diferencia entre find y locate?
- find: búsqueda en tiempo real, más flexible
- locate: base de datos preindexada, más rápido pero puede estar desactualizado
Próximos Pasos
- Lab 3.4: Práctica Completa
- Capítulo 3.6: Búsqueda de Archivos
- Capítulo 3.7: Enlaces Simbólicos y Duros
Lab creado el: diciembre 2024 - Probado en Ubuntu 24.04