Zum Wohle der Leser:
Vorsicht rm -rf
in so einem Fall! Es kann anderswo zu Problemen kommen, falls es sich um eine Netzwerkfreigabe handelt! Du wurdest gewarnt!
In fast allen Fällen, wenn a directory
leer zu sein scheint, verwenden Sie rmdir directory
oder vielleicht sudo rmdir directory
. Verwenden Sie nicht rm
(oder del
unter Windows). Wenn dies nicht funktioniert, müssen Sie herausfinden, was diese Anforderung blockiert, das beheben und dann erneut versuchen rmdir
.
Bitte beachten Sie, dass ich OS-X nicht kenne, aber ich denke, dass die Dinge dort dem Unix / BSD-Verhalten sehr ähnlich sind.
Es ist sehr wahrscheinlich, dass es sich bei dem fraglichen Verzeichnis nur um einen Mount-Punkt (aus dem encfs) handelte oder sich auf einem Mount-Punkt befand, der schreibgeschützt war oder in einem unzulässigen Zustand steckte (wodurch das Entfernen des Verzeichnisses verhindert wurde). Wenn Sie jetzt das Entfernen des Verzeichnisses erzwingen, können sehr schlimme Dinge passieren.
Im guten Fall war das Verzeichnis wirklich leer, so dass das Entfernen (Zerstören des Reiters usw.) keinen weiteren Schaden anrichtete. Im schlimmen Fall war es nicht leer, es schien nur so zu sein, was bedeutet, dass Sie etwas weggeworfen haben, was Sie vielleicht nicht töten wollten. Dies hängt alles vom Mount-Typ, den verwendeten Treibern usw. ab.
Wenn die Dinge einigermaßen gut implementiert sind, sollte normalerweise nichts Schlimmes passieren. Dies ist jedoch nicht der Normalfall. Die Dinge befinden sich bereits in einem seltsamen Zustand, was bedeutet: Etwas stimmt nicht, also versuchen Sie besser nicht, es noch weiter zu verwechseln! Wenn etwas geknackt ist, kann eine falsche Berührung es zerbrechen.
Wenn Sie beispielsweise eine Race-Bedingung auf einer Netzwerkfreigabe erfüllen, werden möglicherweise rm -rf
Daten entfernt, die gerade von einer anderen Person auf die Freigabe kopiert wurden.
Es wird jedoch rmdir
garantiert nie Schaden anrichten, abgesehen davon, dass wirklich leere Verzeichnisse entfernt werden. Dies gilt sogar für NFS, da NFS nur auf mkdir
und rmdir
nirgendwo sonst ein wirklich atomares Verhalten garantiert .
Zu Ihrer Information:
Sie können einen Einhängepunkt mit dem Tool erkennen mountpoint directory
. Alternativ können Sie auch in die Ausgabe von schauen mount
und versuchen, Ihre Reittiere dort zu finden. Aber Vorsicht, zumindest unter Linux könnte das liegen. Verwenden des mountpoint
Dienstprogramms zuverlässiger, aber weniger bequem.
In diesem Fall haben Sie den Einhängepunkt gefunden. Sie können ihn aushängen und dann das Verzeichnis entfernen. Dies ist die folgende Reihenfolge:
umount directory
rmdir directory
Bei Bedarf sudo
wie gewohnt anwenden.
Anmerkungen:
Netzwerkfreigaben können rmdir
(und alles andere) aufgrund von Zugriffsrechten verweigert werden.
Defekte Dateisysteme können rmdir
je nach Fehlerstrategie fehlschlagen. Vielleicht sehen Sie in diesem Fall eine vernünftige Nachricht, vielleicht auch nicht.
Unter Linux (und wahrscheinlich jedem modernen Betriebssystem) können Sie den Zugriff auch auf andere Weise einschränken (z. B. nur lesbares Mounten, Funktionen wie in SeLinux usw.). Dies bedeutet dann, dass Sie nicht sehen, dass es sich um einen Einhängepunkt handelt, und Sie sehen nichts Falsches, aber es funktioniert einfach nicht. In diesem Fall müssen Sie nach einem anderen Grund suchen, und es kann sehr tief im Betriebssystem vergraben sein. Es hängt vom jeweiligen Tool ab, ob eine sinnvolle Fehlermeldung angezeigt wird. Vielleicht schau auch mal in das Syslog / Kernel-Log wie dmesg
unter Linux (sorry, ich kenne das OS-X-Äquivalent nicht).
Beachten Sie, dass die obligatorische Dateisperrung auch eine Quelle sein kann. Während dies unter Windows normal ist, ist es normalerweise nicht der Normalfall für Unix und ich habe es für Verzeichnisse nie gehört. Obligatorische Dateisperren werden von POSIX abgedeckt, sind jedoch optional.
In solchen Fällen befindet sich das betreffende Verzeichnis häufig auf einem anderen Dateisystem als gedacht. Sie können die mit dem Befehl herausfinden, df directory
(ich glaube , das ist das gleiche unter OS-X).
Sie können mit Tools wie stat
oder statfs
im Verzeichnis genauer nachsehen . Diese sind jedoch für normale Menschen ein wenig niedrig, und solche Tools sind für normale Benutzer häufig gut versteckt.
Verzeichnisse können Dateien mit lustigen Namen haben. Wie eine Datei, die die Terminalausgabe sofort löscht, so dass es so aussieht, als ob sie nicht da ist. Probieren Sie etwas wie ls -al | less
oder Verwendung so etwas wie Midnight Commander mc
.
Es gibt eine Menge anderer Möglichkeiten, einschließlich Bugs, Haxors, Aliens oder vielleicht exotischeren Dingen wie Feen. Aber normalerweise ist es nicht ratsam, dort nachzuschauen, sondern zuerst zu versuchen, den Fehler an Ihrer Seite zu finden, weil "errare humanum est".
rmdir
- aber es ist oft der Grund, warum man ein Volume nicht aushängen kann).