Pour le bénéfice des lecteurs:
Attention rm -rf
dans un tel cas! Cela peut créer des problèmes ailleurs s'il s'agit d'un partage réseau! Tu étais prévenu!
Dans presque tous les cas, si un directory
semble vide, utilisez rmdir directory
ou peut-être sudo rmdir directory
. N'utilisez pas rm
(ou del
sous Windows). Si cela ne fonctionne pas, vous devez savoir ce qui bloque cette demande, corriger cela, puis réessayer rmdir
.
Veuillez noter que je ne connais pas OS-X, mais je pense que les choses sont très similaires au comportement Unix / BSD.
Il est très probable que le répertoire en question était juste un point de montage (à partir de l'encfs) ou résidant sur un point de montage devenu en lecture seule ou bloqué dans un état incorrect (ce qui a empêché la suppression du répertoire). Si vous forcez maintenant la suppression du répertoire, de très mauvaises choses peuvent se produire.
Dans le bon cas, le répertoire était vraiment vide, donc le supprimer (détruire la monture, etc.) ne faisait plus de mal. Dans le mauvais cas, il n'était pas vide, il semblait juste l'être, ce qui signifie que vous avez jeté quelque chose que vous ne vouliez peut-être pas tuer. Tout dépend du type de montage, des pilotes utilisés, etc. pp.
Si les choses sont mises en œuvre raisonnablement bien, normalement rien de mal ne devrait se produire. Mais ce n'est pas le cas normal. Les choses sont déjà dans un état étrange, ce qui signifie: Quelque chose ne va pas, alors mieux vaut ne pas essayer de mélanger encore plus! Si quelque chose est fissuré, tout mauvais contact pourrait le casser.
Par exemple, si vous rencontrez une condition de concurrence critique sur un partage réseau, il se peut que votre rm -rf
supprime les données qui sont juste copiées sur le partage par quelqu'un d'autre.
Cependant, il rmdir
est garanti de ne jamais faire de mal, en plus de supprimer des répertoires vraiment vides. Cela est même vrai sur NFS, car NFS garantit uniquement un comportement vraiment atomique sur mkdir
et rmdir
, mais nulle part ailleurs.
Pour info:
Vous pouvez détecter un point de montage à l'aide de l'outil mountpoint directory
. Vous pouvez également regarder la sortie de mount
et essayer de repérer vos montures là-bas. Mais attention, au moins sous Linux, cela pourrait mentir. Utilisation de l' mountpoint
utilitaire plus fiable mais moins pratique.
Dans ce cas, vous avez trouvé le point de montage, vous pouvez le démonter puis supprimer le répertoire, voici la séquence suivante:
umount directory
rmdir directory
Si nécessaire, utilisez sudo
, comme d'habitude.
Remarques:
Les partages réseau peuvent refuser rmdir
(et toute autre chose) en raison des droits d'accès.
Les systèmes de fichiers défectueux peuvent refuser rmdir
, selon la stratégie d'échec. Peut-être verrez-vous un message raisonnable dans ce cas, peut-être pas.
Sous Linux (et probablement n'importe quel système d'exploitation moderne), vous pouvez également restreindre l'accès en utilisant différents moyens (comme monter quelque chose en lecture seule, des capacités comme dans SeLinux, etc.). Cela signifie alors que vous ne voyez pas qu'il s'agit d'un point de montage et que vous ne voyez rien de mal, mais cela ne fonctionne tout simplement pas. Dans ce cas, vous devez rechercher une autre raison et cela peut être profondément enfoui dans le système d'exploitation. Cela dépend de l'outil si vous voyez un message d'erreur raisonnable. Jetez peut-être aussi un œil au syslog / kernel-log comme dmesg
sous Linux (désolé, je ne connais pas l'équivalent OS-X).
Notez que le verrouillage de fichier obligatoire peut également être une source. Bien que cela soit normal sous Windows, ce n'est généralement pas le cas normal d'Unix et je ne l'ai jamais entendu pour les répertoires. Les verrous de fichiers obligatoires sont couverts par POSIX, mais ils sont facultatifs.
Très souvent dans de tels cas, le répertoire en question réside sur un système de fichiers différent de celui auquel vous pensiez. Vous pouvez le découvrir avec la commande df directory
(je pense que c'est la même chose sous OS-X).
Vous pouvez inspecter plus en profondeur avec des outils comme stat
ou statfs
sur le répertoire. Cependant, ces niveaux sont un peu bas pour les gens normaux, et bien souvent, ces outils sont bien cachés des utilisateurs normaux.
Les répertoires peuvent avoir des fichiers avec des noms amusants. Comme un fichier qui efface immédiatement la sortie du terminal, il semble donc qu'il ne soit pas là. Essayez quelque chose comme ls -al | less
ou utilisez quelque chose comme MidnightCommander mc
.
Il y a une charge de train d'autres possibilités, y compris des insectes, des haxors, des extraterrestres ou peut-être des choses plus exotiques comme les fées. Mais généralement, il n'est pas sage de commencer à chercher là-bas, essayez plutôt de trouver l'erreur à vos côtés, car "errare humanum est".
rmdir
- mais c'est souvent la raison pour laquelle on ne peut pas démonter un volume).