Warum mögen cp
und rm
behandeln Tools Verzeichnisse getrennt von regulären Dateien? In beiden Fällen muss der Benutzer explizit angeben, dass er ein rekursives Verhalten wünscht, da er sich sonst überhaupt nicht mit Verzeichnissen befasst.
Meine erste Interaktion (vor einiger Zeit) mit Computern fand in einer Windows / GUI / Point-and-Click / Drag & Drop-Umgebung statt. Es schien immer natürlich, dass sich diese Vorgänge unabhängig vom Ziel gleich verhalten.
Dieses Verhalten frustriert mich besonders, wenn ich Befehle mit Platzhaltern gebe. Was ist, wenn ich alles in einem Verzeichnis ( *
) entfernen möchte, außer nicht leere Unterverzeichnisse ?
Ich kann mir nur vorstellen, dass dies eine Art Sicherheitsmerkmal ist, das den Benutzer daran hindert, sich in den Fuß zu schießen, aber dies widerspricht meinem Verständnis einiger Unix-Prinzipien:
- Unix schützt den Benutzer normalerweise nicht vor sich selbst. Es wurde immer davon ausgegangen, dass der Benutzer weiß, was er tut.
- Für Unix ist alles eine Datei. Ist ein Verzeichnis nicht nur eine andere Datei? Warum werden sie unterschiedlich behandelt?
Meine Fragen:
- Ist dieses Verhalten auf eine technische Einschränkung zurückzuführen oder handelt es sich um eine bewusste Entscheidung?
Und im letzteren Fall,
- Gibt es historische Berichte über die Gründe, die diese Wahl motiviert haben?
rm
zumindest, wenn man es den Unterschied zwischen Dateien und Verzeichnisse ignorieren möchten, können Sie in Ihrem setzen~/.bashrc
Datei:alias rm='rm -r'
.