Zeitstempel Hinzufügen
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy. Lektion 78 von 82.
Aufgabe
EinfachLass uns den Namen des `backup`-Ordners eindeutig machen, indem wir einen `timestamp` hinzufügen. Auf diese Weise erstellt jedes Backup einen neuen Ordner, anstatt den vorherigen zu überschreiben.
Passe backup.sh an, um:
- Den gesamten bestehenden Code aus der vorherigen Lektion zu behalten
- Das statische
backup_dir="backup"durch einen dynamischen Namen zu ersetzen, der einen `timestamp` enthält - Befehlssubstitution mit dem
date-Befehl zu verwenden, um einen `timestamp` im FormatYYYYMMDD_HHMMSSzu generieren - Der `backup`-Ordner sollte wie folgt benannt werden:
backup_[timestamp]
Der date-Befehl mit Formatbezeichnern erstellt Timestamps:
date +%Y%m%d_%H%M%SVerwende die Befehlssubstitution $(command), um diese Ausgabe in einer Variablen zu erfassen:
timestamp=$(date +%Y%m%d_%H%M%S)
backup_dir="backup_$timestamp"Führe das Skript aus und gib documents ein, wenn du dazu aufgefordert wirst. Deine Ausgabe sollte wie folgt aussehen:
Backing up: documents
Created backup folder: backup_20240115_143052
Files copied successfullyDer `timestamp` in deiner Ausgabe wird je nach aktuellem Datum und aktueller Uhrzeit unterschiedlich sein.
Hinweis: Füge
timestamp=$(date +%Y%m%d_%H%M%S)vor der Definition vonbackup_direin und verwende dannbackup_dir="backup_$timestamp", um den dynamischen Ordnernamen zu erstellen.
Probier es selbst
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 backupAlle Lektionen in Grundlagen
4Verzeichnisse
Ein Verzeichnis erstellenEin Verzeichnis kopierenEin Verzeichnis verschieben und umbenennenEin Verzeichnis löschenZusammenfassung - Verzeichnisoperationen7Dateiinhalt
Head und TailWortanzahlSort-BefehlUniq-BefehlGrep GrundlagenGrep mit FlagsZusammenfassung - Textdetektiv10Log-Analyzer-Projekt
ProjektübersichtAnzeigen der Logdatei2Navigation
Arbeitsverzeichnis anzeigenDateien auflistenVerzeichnis wechselnAbsolute vs. relative PfadeHome- und Root-VerzeichnisZusammenfassung - Den Weg finden8Umleitung
StandardausgabeIn eine Datei überschreibenAn eine Datei anhängenStandardeingabeStandardfehlerausgabeZusammenfassung – Log-Builder11Berechtigungen
Berechtigungen verstehenBerechtigungen lesenChmod mit ZahlenChmod mit SymbolenDateibesitzZusammenfassung - Absichern14Backup-Skript-Projekt
ProjektübersichtQuellpfad Ermitteln3Dateien
Eine Datei erstellenEine Datei lesenEine Datei kopierenEine Datei verschieben und umbenennenEine Datei löschenZusammenfassung - Dateioperationen6Wildcards und Muster
Die Sternchen-WildcardDie Fragezeichen-WildcardKlammer-WildcardsWildcards kombinierenZusammenfassung - Selektive Operationen9Pipes
Was ist eine PipeVerkettung zweier BefehleVerkettung mehrerer BefehlePipe mit GrepZusammenfassung - Daten-PipelineÜbe selbstständig: Terminal-Playground