Einführung
In diesem Projekt lernst du, wie du Dateien aus dem Verzeichnis /etc mit einem letzten Änderungsjahr von 2022 in das Verzeichnis /tmp/etc kopierst, wobei die Verzeichnisstruktur beibehalten wird.
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du ein Skript erstellst, um den Dateikopierprozess zu automatisieren
- Wie du die
find-Befehl verwendest, um Dateien nach ihrem letzten Änderungsdatum zu suchen - Wie du die
cp-Befehl verwendest, um Dateien zu kopieren, wobei die Verzeichnisstruktur beibehalten wird
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Den Prozess der Kopieren von Dateien aus einem bestimmten Verzeichnis basierend auf ihrem letzten Änderungsdatum zu automatisieren
- Zu verstehen, wie du übliche Shell-Befehle wie
findundcpverwendest, um Dateien und Verzeichnisse zu manipulieren - Dein Wissen anzuwenden, um reale Dateiverwaltungstasks zu lösen
Erstelle das Skript zum Sammeln von Dateien
In diesem Schritt wirst du ein Skript erstellen, um Dateien aus dem Verzeichnis /etc mit einem letzten Änderungsjahr von 2022 in das Verzeichnis /tmp/etc zu kopieren, wobei die Verzeichnisstruktur beibehalten wird.
- Öffne einen Texteditor und erstelle in dem Verzeichnis
/home/labex/projecteine neue Datei namenscollect_files.sh. - Füge dem Datei
collect_files.shfolgenden Code hinzu:
#!/bin/zsh
## Skript: collect_files.sh
## Beschreibung: Kopiert Dateien aus dem Verzeichnis /etc mit einem letzten Änderungsjahr von 2022 in das Verzeichnis /tmp/etc, wobei die Verzeichnisstruktur beibehalten wird.
source_dir="/etc"
target_dir="/tmp"
year="2022"
## Erstelle das Zielverzeichnis
mkdir -p "$target_dir"
## Verwende den find-Befehl, um Dateien im Quellverzeichnis mit einem letzten Änderungsjahr von 2022 zu suchen und sie in das Zielverzeichnis zu kopieren
find "$source_dir" -type f -newermt "$year-01-01"! -newermt "$year-12-31" -exec cp --parents --dereference "{}" "$target_dir" \;
echo "Dateikopie abgeschlossen."
Dieses Skript verwendet den find-Befehl, um Dateien im Verzeichnis /etc zu suchen, die im Jahr 2022 zuletzt geändert wurden. Die Optionen -newermt und ! -newermt werden verwendet, um die Dateien basierend auf ihrem letzten Änderungsdatum zu filtern. Der cp-Befehl wird dann verwendet, um die Dateien in das Verzeichnis /tmp/etc zu kopieren, wobei die Verzeichnisstruktur beibehalten wird.
- Speichere die Datei.
Teste das Skript
In diesem Schritt wirst du das Skript collect_files.sh testen, um sicherzustellen, dass es wie erwartet funktioniert.
- Öffne ein Terminal und navigiere zum Verzeichnis
/home/labex/project. - Führe das Skript mit dem folgenden Befehl aus:
sudo sh collect_files.sh
Dieser Befehl führt das Skript mit erhöhten Rechten aus, was erforderlich ist, um Dateien aus dem Verzeichnis /etc zu kopieren.
- Nachdem das Skript abgeschlossen ist, überprüfe das Verzeichnis
/tmp/etc, um sicherzustellen, dass die Dateien mit einem letzten Änderungsjahr von 2022 korrekt kopiert wurden. - Verifiziere, dass die Verzeichnisstruktur beibehalten wurde. Beispielsweise sollte die Datei
/etc/fstabkopiert werden, und du solltest die Datei am Pfad/tmp/etc/fstabfinden.
Wenn das Skript wie erwartet funktioniert, hast du das Projekt abgeschlossen. Wenn du Probleme stellst, überprüfe das Skript und die Anweisungen und mache die erforderlichen Anpassungen.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.



