Backup-Ordner Erstellen
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy. Lektion 76 von 82.
Aufgabe
EinfachErweitern wir nun das Backup-Skript, sodass es einen Backup-Ordner erstellt, in dem die Dateien gespeichert werden.
Schreibe backup.sh von Grund auf neu, sodass es das vollständige, aktualisierte Skript enthält. Verwende > für die erste Zeile, um die Datei zu ersetzen, und anschließend >>, um jede folgende Zeile anzuhängen:
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
echo 'backup_dir="backup"' >> backup.sh
echo 'mkdir -p "$backup_dir"' >> backup.sh
echo 'echo "Created backup folder: $backup_dir"' >> backup.shJede Zeile ist in einfache Anführungszeichen eingeschlossen, damit die Shell $source_dir und $backup_dir wörtlich in die Datei schreibt, anstatt sie durch ihre Werte zu ersetzen.
Dann mache das Skript ausführbar:
chmod +x backup.shFühre schließlich dein Skript mit documents als Eingabe aus. Dieses Terminal ist nicht interaktiv. Leite daher die Antwort in das Skript weiter, anstatt darauf zu warten, dass du dazu aufgefordert wirst:
echo "documents" | ./backup.shDeine Ausgabe sollte folgendermaßen aussehen:
Backing up: documents
Created backup folder: backupÜberprüfe, ob der Ordner erstellt wurde, indem du ls ausführst, um den Verzeichnisinhalt aufzulisten. Die Ausgabe sollte neben deinen anderen Dateien den neuen Ordner backup anzeigen.
Hinweis: Das Flag
-pinmkdir -pverhindert Fehler, wenn das Verzeichnis bereits vorhanden ist. Achte darauf, deine Variablen in Anführungszeichen zu setzen (z. B."$backup_dir"), damit sie sicher verarbeitet werden.
Probier es selbst
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
chmod +x backup.sh
echo "documents" | ./backup.shAlle 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