J'ai un petit serveur Linux (Debian Squeeze) qui exécute un serveur Samba qui est configuré pour partager certains dossiers avec certaines machines Windows. En essayant de supprimer l'un des répertoires de Windows, j'ai reçu l'erreur "Impossible de supprimer le dossier".
J'ai essayé de supprimer le répertoire de la console Linux, j'ai eu une erreur similaire:
# rm dir-name -rf
rm: cannot remove `dir-name': Directory not empty
J'ai répertorié le contenu du répertoire et trouvé un fichier nommé .Fuse_hidden suivi d'un numéro hexadécimal (000bd8c100000185).
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .Fuse_hidden000bd8c100000185
J'ai essayé de supprimer le fichier .Fuse_hidden, mais un nouveau fichier a été créé instantanément (notez le changement de numéro hexadécimal).
# rm dir-name/.Fuse_hidden000bd8c100000185
# ls -la dir-name
-rwxrwxrwx 1 root root 5120 Feb 13 11:46 .Fuse_hidden000bd8c100000186
J'ai également essayé d'utiliser Midnight Commander pour supprimer le fichier sans succès.
Les autres solutions que j'ai trouvées jusqu'à présent concernent l'interface graphique et je n'ai que la console.
Toutes les suggestions sont appréciées.
Ceci est similaire à ce qui se produit lorsque vous supprimez un fichier qu'un autre système a ouvert sur un montage NFS. Le problème est que le fichier a été supprimé du système de fichiers alors que son "nombre de liens" était> 1, ce qui signifie que d'autres processus le maintiennent toujours ouvert.
lsof dir-name/.Fuse_hidden000bd8c100000185
pour savoir quels processus maintiennent le descripteur de fichier ouvert.Normalement, lorsque vous supprimez un fichier de votre système de fichiers local qu'un autre processus a ouvert, le système d'exploitation se conforme à votre demande et le supprime de l'arborescence de répertoires, mais l'inode sur lequel pointe l'arborescence est toujours considéré comme utilisé par le système d'exploitation. Chaque fois qu'un fichier est ouvert, son "nombre de liens" augmente d'une unité et l'espace n'est réellement libéré que lorsque le nombre de liens atteint zéro.
Lorsque vous rencontrez un problème de cette nature, cela signifie que le système d'exploitation a, pour une raison quelconque, décidé de pas supprimer ce fichier de l'arborescence des répertoires: généralement parce qu'il a des raisons de croire qu'il doit encore être accessible par des choses qui ne peuvent pas utiliser le numéro d'inode direct. Il peut initialement sembler conforme, mais en coulisses, le système d'exploitation le renomme pour avoir un préfixe de point caché de sorte qu'il est toujours accessible avec une certaine forme d'adressage de chemin de système de fichiers. L'espace sera toujours libéré lorsque le nombre de liens atteindra zéro, mais cet objet restera dans le répertoire jusqu'à ce que les liens disparaissent.
Merci pour les suggestions, mais rien n'a fonctionné pour moi. Mais j'ai trouvé une solution: j'ai déplacé le SSD externe vers un PC exécutant Windows. En utilisant l'explorateur de fichiers (avec "Éléments cachés" cochés), j'ai navigué vers le répertoire .Trashes
. J'ai pu supprimer le fichier .fuser_hidden
.
J'espère que cela t'aides!