Backup-Ordner Erstellen
Teil des Abschnitts Grundlagen der Terminal-Journey von Coddy — Lektion 76 von 82.
Aufgabe
EinfachJetzt erweitern wir das Backup-Skript, um einen Backup-Ordner zu erstellen, in dem die Dateien gespeichert werden.
Schreiben Sie backup.sh von Grund auf neu, damit es das vollständige, aktualisierte Skript enthält. Verwenden Sie > für die erste Zeile, um die Datei zu ersetzen, und dann >>, 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 gefasst, sodass die Shell $source_dir und $backup_dir wörtlich in die Datei schreibt, anstatt sie durch ihre Werte zu ersetzen.
Machen Sie es danach ausführbar:
chmod +x backup.shFühren Sie schließlich Ihr Skript mit documents als Eingabe aus. Dieses Terminal ist nicht interaktiv, leiten Sie die Antwort daher per Pipe in das Skript, anstatt auf die Aufforderung zu warten:
echo "documents" | ./backup.shIhre Ausgabe sollte wie folgt aussehen:
Backing up: documents
Created backup folder: backupÜberprüfen Sie, ob der Ordner erstellt wurde, indem Sie ls ausführen, um den Inhalt des Verzeichnisses aufzulisten. Die Ausgabe sollte den neuen backup-Ordner neben Ihren anderen Dateien anzeigen.
Hinweis: Das Flag
-pinmkdir -pverhindert Fehler, falls das Verzeichnis bereits existiert. Stellen Sie sicher, dass Sie Ihre Variablen in Anführungszeichen setzen (z. B."$backup_dir"), um sicher mit ihnen umzugehen.
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