Skip to content

Projekt 1: Konsolen-Dateiverwaltungswerkzeug

Projektbeschreibung

In diesem Projekt erstellen wir ein einfaches Dateiverwaltungswerkzeug für die Konsole, das grundlegende Dateioperationen ermöglicht.

Lernziele

  • Shell-Skriptprogrammierung üben
  • Datei- und Verzeichnisoperationen meistern
  • Berechtigungen verstehen und anwenden
  • Praktische Problemlösung mit Linux-Befehlen

Projektanforderungen

Funktionen:

  1. Verzeichnis erstellen: Benutzer kann neue Verzeichnisse erstellen
  2. Dateien kopieren/verschieben/löschen: Grundlegende Dateioperationen
  3. Dateiinhalt suchen: Nach Schlüsselwörtern in Dateien suchen
  4. Berechtigungen ändern: Dateiberechtigungen anzeigen und ändern
  5. Einfaches Skript: Alle Operationen in einem Skript zusammenfassen

Schritt-für-Schritt-Anleitung

Schritt 1: Projektverzeichnis erstellen

bash
mkdir -p ~/projekte/dateiverwaltung
cd ~/projekte/dateiverwaltung

Schritt 2: Funktion zum Verzeichnis erstellen implementieren

Erstellen Sie eine Datei dateiverwaltung.sh:

bash
vim dateiverwaltung.sh

Fügen Sie folgenden Code hinzu:

bash
#!/bin/bash

# Funktion: Verzeichnis erstellen
erstelle_verzeichnis() {
    read -p "Geben Sie den Namen des neuen Verzeichnisses ein: " verzeichnisname
    if [ -d "$verzeichnisname" ]; then
        echo "Verzeichnis existiert bereits!"
    else
        mkdir -p "$verzeichnisname"
        echo "Verzeichnis '$verzeichnisname' wurde erstellt."
    fi
}

Schritt 3: Funktionen für Dateioperationen hinzufügen

bash
# Funktion: Datei kopieren
kopiere_datei() {
    read -p "Quelldatei eingeben: " quelldatei
    read -p "Zieldatei eingeben: " zieldatei
    if [ -f "$quelldatei" ]; then
        cp "$quelldatei" "$zieldatei"
        echo "Datei wurde nach '$zieldatei' kopiert."
    else
        echo "Fehler: Quelldatei existiert nicht!"
    fi
}

# Funktion: Datei verschieben/löschen
verschiebe_datei() {
    read -p "Umzuschiebende Datei eingeben: " datei
    read -p "Zielverzeichnis eingeben: " ziel
    if [ -f "$datei" ]; then
        mv "$datei" "$ziel"
        echo "Datei wurde nach '$ziel' verschoben."
    else
        echo "Fehler: Datei existiert nicht!"
    fi
}

loesche_datei() {
    read -p "Zu löschende Datei eingeben: " datei
    if [ -f "$datei" ]; then
        rm -i "$datei"
        echo "Datei wurde gelöscht."
    else
        echo "Fehler: Datei existiert nicht!"
    fi
}

Schritt 4: Dateiinhalt suchen

bash
# Funktion: In Dateien suchen
suche_dateiinhalt() {
    read -p "Suchbegriff eingeben: " suchbegriff
    read -p "Verzeichnis für Suche eingeben (Standard: aktuelles Verzeichnis): " verzeichnis
    verzeichnis=${verzeichnis:-.}
    grep -r "$suchbegriff" "$verzeichnis"
}

Schritt 5: Berechtigungen anzeigen und ändern

bash
# Funktion: Berechtigungen anzeigen
zeige_berechtigungen() {
    read -p "Datei/Verzeichnis eingeben: " datei
    if [ -e "$datei" ]; then
        ls -l "$datei"
    else
        echo "Fehler: Datei/Verzeichnis existiert nicht!"
    fi
}

# Funktion: Berechtigungen ändern
aendere_berechtigungen() {
    read -p "Datei/Verzeichnis eingeben: " datei
    read -p "Neue Berechtigung eingeben (z.B. 755): " berechtigung
    if [ -e "$datei" ]; then
        chmod "$berechtigung" "$datei"
        echo "Berechtigung wurde auf $berechtigung geändert."
    else
        echo "Fehler: Datei/Verzeichnis existiert nicht!"
    fi
}

Schritt 6: Hauptmenü erstellen

bash
# Hauptmenü
hauptmenue() {
    while true; do
        echo "===== Dateiverwaltungswerkzeug ====="
        echo "1. Verzeichnis erstellen"
        echo "2. Datei kopieren"
        echo "3. Datei verschieben"
        echo "4. Datei löschen"
        echo "5. Dateiinhalt suchen"
        echo "6. Berechtigungen anzeigen"
        echo "7. Berechtigungen ändern"
        echo "8. Beenden"
        read -p "Wählen Sie eine Option: " option
        
        case $option in
            1) erstelle_verzeichnis ;;
            2) kopiere_datei ;;
            3) verschiebe_datei ;;
            4) loesche_datei ;;
            5) suche_dateiinhalt ;;
            6) zeige_berechtigungen ;;
            7) aendere_berechtigungen ;;
            8) echo "Programm wird beendet."; exit 0 ;;
            *) echo "Ungültige Option!" ;;
        esac
        read -p "Drücken Sie Enter, um fortzufahren..."
        clear
    done
}

# Skript starten
hauptmenue

Schritt 7: Skript ausführbar machen und testen

bash
chmod +x dateiverwaltung.sh
./dateiverwaltung.sh

Projekterweiterungen

  1. Protokollierung: Alle Operationen in einer Logdatei aufzeichnen
  2. Fortschrittsanzeige: Bei großen Dateioperationen Fortschritt anzeigen
  3. Rückgängig-Funktion: Letzte Operation rückgängig machen
  4. Grafsche Oberfläche: dialog oder whiptail für GUI-ähnliche Oberfläche verwenden

Projektzusammenfassung

In diesem Projekt haben wir:

  • Ein benutzerfreundliches Menü erstellt
  • Grundlegende Dateioperationen implementiert
  • Berechtigungen verwaltet
  • Shell-Skriptprogrammierung gelernt

Wichtige Befehle, die verwendet wurden:

  • mkdir: Verzeichnis erstellen
  • cp: Datei kopieren
  • mv: Datei verschieben
  • rm: Datei löschen
  • grep: Dateiinhalt suchen
  • chmod: Berechtigungen ändern
  • ls -l: Berechtigungen anzeigen

Frei für alle Anfänger