Menu
CoddyTech

Ajouter un Horodatage

Fait partie de la section Fondamentaux du Journey Terminal de Coddy. Leçon 78 sur 82.

challenge icon

Défi

Facile

Créons un nom unique pour le dossier de sauvegarde en ajoutant un horodatage. Ainsi, chaque sauvegarde crée un nouveau dossier au lieu d’écraser le précédent.

Réécris backup.sh pour qu’il contienne le script complet et mis à jour (exécute cat backup.sh pour voir la version de la leçon précédente) :

  1. Garde toutes les autres lignes du script de la leçon précédente telles quelles
  2. Remplace backup_dir="backup" par un nom dynamique qui inclut un horodatage
  3. Utilise la substitution de commande avec la commande date pour générer un horodatage au format YYYYMMDD_HHMMSS
  4. Le dossier de sauvegarde doit s’appeler : backup_[timestamp]

La commande date, avec des spécificateurs de format, crée des horodatages :

date +%Y%m%d_%H%M%S

Utilise la substitution de commande $(command) pour stocker cette sortie dans une variable :

timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"

Écrire un script multiligne avec un echo par ligne fonctionne, mais il existe une méthode plus courte : un document here transmet directement au fichier tout ce qui précède le mot de fermeture.

cat > script.sh << 'EOF'
#!/bin/bash
echo "hello"
EOF

Les guillemets autour de 'EOF' empêchent le développement des $variables pendant l’écriture du fichier, ce que tu veux lorsque le script les utilise lui-même.

Exécute le script avec documents comme entrée (echo "documents" | bash backup.sh). La sortie devrait ressembler à ceci :

Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfully

L’horodatage de ta sortie sera différent selon la date et l’heure actuelles.

Indice : Ajoute timestamp=$(date +%Y%m%d_%H%M%S) avant de définir backup_dir, puis utilise backup_dir="backup_$timestamp" pour créer le nom de dossier dynamique.

Essayez vous-même

Terminal
echo 'cp "$source_dir"/* "$backup_dir"' >> backup.sh
echo 'echo "Files copied successfully"' >> backup.sh
echo "documents" | bash backup.sh
ls backup

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Terminal