Ajouter un Horodatage
Fait partie de la section Les fondamentaux du Journey Terminal de Coddy. Leçon 78 sur 82.
Défi
FacileCréons un nom de dossier de sauvegarde unique en ajoutant un horodatage. Ainsi, chaque sauvegarde crée un nouveau dossier au lieu d’écraser le précédent.
Modifiez backup.sh pour :
- Conserver tout le code existant de la leçon précédente
- Remplacer
backup_dir="backup"statique par un nom dynamique qui inclut un horodatage - Utiliser la substitution de commande avec la commande
datepour générer un horodatage au formatYYYYMMDD_HHMMSS - Le dossier de sauvegarde doit être nommé :
backup_[timestamp]
La commande date avec des spécificateurs de format crée des horodatages :
date +%Y%m%d_%H%M%SUtilisez la substitution de commande $(command) pour capturer cette sortie dans une variable :
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Écrire un script multiligne avec un
echopar ligne fonctionne, mais il existe une méthode plus courte : un document here envoie directement dans le fichier tout ce qui se trouve jusqu’au mot de fermeture.cat > script.sh << 'EOF' #!/bin/bash echo "hello" EOFLes guillemets autour de
'EOF'empêchent l’expansion de$variablespendant l’écriture du fichier, ce qui est souhaitable lorsque le script les utilise lui-même.
Exécutez le script avec documents comme entrée (echo "documents" | bash backup.sh). Votre sortie devrait ressembler à ceci :
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyL’horodatage dans votre sortie sera différent selon la date et l’heure actuelles.
Astuce : Ajoutez
timestamp=$(date +%Y%m%d_%H%M%S)avant de définirbackup_dir, puis utilisezbackup_dir="backup_$timestamp"pour créer le nom de dossier dynamique.
Essayez vous-même
cat > backup.sh << 'EOF'
#!/bin/bash
read -p "Enter source directory: " source_dir
echo "Backing up: $source_dir"
backup_dir="backup"
mkdir -p "$backup_dir"
echo "Created backup folder: $backup_dir"
cp "$source_dir"/* "$backup_dir"
echo "Files copied successfully"
EOF
echo "documents" | bash backup.sh
ls backupToutes les leçons de Les fondamentaux
4Répertoires
Créer Un RépertoireCopier Un RépertoireDéplacer Et Renommer Un RépertoireSupprimer Un RépertoireRécapitulatif - Opérations Sur Les Répertoires7Contenu de fichier
Head et TailComptage de motsCommande SortCommande UniqBases de GrepGrep avec optionsRécap - Détective de texte10Projet Analyseur de Journaux
Aperçu du ProjetAffichage du Fichier Journal2Navigation
Afficher le répertoire de travailLister les fichiersChanger de répertoireChemins absolus vs relatifsRépertoire personnel et racineRécap - Trouver son chemin5Projet Organiser les Photos
Aperçu du ProjetCréation de la Structure8Redirection
Sortie standardÉcraser vers un fichierAjouter à un fichierEntrée standardErreur standardRécapitulatif - Constructeur de logs11Permissions
Comprendre les permissionsLire les permissionsChmod avec des nombresChmod avec des symbolesPropriété des fichiersRécapitulatif - Verrouillez tout14Projet de Script de Sauvegarde
Aperçu du ProjetObtenir le Chemin Source3Fichiers
Créer Un FichierLire Un FichierCopier Un FichierDéplacer Et Renommer Un FichierSupprimer Un FichierRécapitulatif - Opérations Sur Les Fichiers6Caractères jokers et motifs
Le joker étoileLe joker point d'interrogationJokers entre crochetsCombiner les jokersRécapitulatif - Opérations sélectives9Les pipes
Qu'est-ce qu'une pipe ?Chaîner deux commandesChaîner plusieurs commandesPipe avec GrepRécapitulatif - Pipeline de donnéesEntraînez-vous par vous-même : Playground Terminal