
Ich versuche, ein Skript zu schreiben, das Dateien und (Unter-)Verzeichnisse von einem Verzeichnis in ein anderes verschiebt. Dieser Verschiebevorgang sollte nicht nur normale Dateien und Verzeichnisse, sondern auch alle Dot-Dateien umfassen. Bisher ist mir Folgendes eingefallen:
mv -f "$SOURCE_DIR"/.?? "$TARGET_DIR"
mv -f "$SOURCE_DIR"/.??* "$TARGET_DIR"
mv -f "$SOURCE_DIR"/* "$TARGET_DIR"
Diese Befehle schlagen jedoch fehl, wenn keine Dateien vorhanden sind, die den Mustern entsprechen.
Ich muss diesen Verschiebevorgang auf jeden Fall erfolgreich durchführen.
- unabhängig vom Dateinamen
- unabhängig davon, ob überhaupt keine Dateien vorhanden sind
- unabhängig vom Typ: Datei, Link, Verzeichnis usw.
Ich möchte aber, dass der Vorgang fehlschlägt, wenn etwas grundlegend schief geht (z. B. unzureichende Berechtigungen im Zielverzeichnis usw.). Daher ist das einfache Ignorieren von Fehlern keine gute Option.
Wie löse ich dieses Problem? Ich denke, es gibt eine sehr einfache Lösung dafür, die ich übersehen habe.
Ich danke Ihnen für Ihre Hilfe!
Antwort1
Sie machen es sich wahrscheinlich unnötig schwerer.
mv $srcdir $destdir