Agregando una Marca de Tiempo
Parte de la sección Fundamentos del Journey de Terminal de Coddy. Lección 78 de 82.
Desafío
FácilHagamos que el nombre de la carpeta de copias de seguridad sea único añadiendo una marca de tiempo. De este modo, cada copia de seguridad crea una carpeta nueva en lugar de sobrescribir la anterior.
Reescribe backup.sh para que contenga el script completo y actualizado (ejecuta cat backup.sh para ver la versión de la lección anterior):
- Conserva todas las demás líneas del script de la lección anterior tal como están
- Reemplaza
backup_dir="backup"estático por un nombre dinámico que incluya una marca de tiempo - Usa la sustitución de comandos con el comando
datepara generar una marca de tiempo con el formatoYYYYMMDD_HHMMSS - La carpeta de copias de seguridad debe llamarse:
backup_[timestamp]
El comando date con especificadores de formato crea marcas de tiempo:
date +%Y%m%d_%H%M%SUsa la sustitución de comandos $(command) para capturar esta salida en una variable:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Escribir un script de varias líneas con un
echopor línea funciona, pero hay una forma más corta: un documento here envía directamente al archivo todo lo que aparece hasta la palabra de cierre.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFLas comillas alrededor de
'EOF'evitan que se expandan las$variablesmientras se escribe el archivo, que es lo que quieres cuando el propio script las usa.
Ejecuta el script con documents como entrada (echo "documents" | bash backup.sh). El resultado debería ser parecido a:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyLa marca de tiempo de tu resultado será diferente según la fecha y hora actuales.
Pista: Añade
timestamp=$(date +%Y%m%d_%H%M%S)antes de definirbackup_dir; luego usabackup_dir="backup_$timestamp"para crear el nombre dinámico de la carpeta.
Pruébalo tú mismo
echo 'cp "$source_dir"/* "$backup_dir"' >> backup.sh
echo 'echo "Files copied successfully"' >> backup.sh
echo "documents" | bash backup.sh
ls backupTodas las lecciones de Fundamentos
4Directorios
Crear Un DirectorioCopiar Un DirectorioMover Y Renombrar Un DirectorioEliminar Un DirectorioResumen - Operaciones Con Directorios7Contenido de Archivos
Head y TailConteo de PalabrasComando SortComando UniqGrep BásicoGrep con FlagsResumen - Detective de Texto10Proyecto Analizador de Registros
Resumen del ProyectoVisualizando el Archivo de Registro2Navegación
Imprimir Directorio de TrabajoListar ArchivosCambiar de DirectorioRutas Absolutas vs RelativasDirectorio Home y RaízRepaso - Encuentra tu Camino8Redirección
Salida EstándarSobrescribir en un ArchivoAnexar a un ArchivoEntrada EstándarError EstándarResumen - Constructor de Registro11Permisos
Entendiendo PermisosLeyendo PermisosChmod con NúmerosChmod con SímbolosPropiedad de ArchivosResumen - Bloquéalo14Proyecto de Script de Copia de Seguridad
Visión General del ProyectoObteniendo la Ruta de Origen3Archivos
Crear un ArchivoLeer un ArchivoCopiar un ArchivoMover y Renombrar un ArchivoEliminar un ArchivoResumen - Operaciones con Archivos6Comodines y Patrones
El comodín asteriscoEl comodín interroganteComodines de corchetesCombinando comodinesRepaso - Operaciones selectivas9Tuberías
Qué es una tuberíaEncadenando dos comandosEncadenando múltiples comandosTubería con GrepResumen - Tubería de datosPractica por tu cuenta: Playground de Terminal