1 votes

Impossible de supprimer un fichier avec rm -rf

En essayant de supprimer un répertoire avec "rm -rf", j'ai obtenu "directory not empty". Perplexe, j'ai cherché pourquoi et il semble que j'ai un fichier "zombie" coincé là-dedans. Je n'ai aucune idée de comment le supprimer. Fdisk est-il ma seule solution ?

# rm -rf noc
rm: cannot remove directory `noc/INBOX/#msgs': Directory not empty

# rm -rf noc/INBOX/#msgs/000201E5.eml 

# rm -rf noc
rm: cannot remove directory `noc/INBOX/#msgs': Directory not empty

# rm  noc/INBOX/#msgs/000201E5.eml 
rm: cannot remove `noc/INBOX/#msgs/000201E5.eml': No such file or directory

# cd noc/INBOX/#msgs/
# ls -la
ls: cannot access 000201E5.eml: No such file or directory
total 2248
drwx------ 2 root root 2293760 2013-08-27 21:55 .
drwx------ 3 root root    4096 2013-08-27 21:55 ..
-????????? ? ?    ?          ?                ? 000201E5.eml

# ls -iN | cat -A
6346412 000201E5.eml$

# find . -inum 6346412 -exec rm -i {} \;
find: `./000201E5.eml': No such file or directory

# unlink 000201E5.eml 
unlink: cannot unlink `000201E5.eml': No such file or directory

3voto

scuba_mike Points 201

Vous debe commencez par démonter et utiliser fsck pour vérifier que le système de fichiers n'est pas corrompu.

Si cela ne résout pas le problème, vous pouvez essayer d'examiner le système de fichiers manuellement.

El unlink appelle simplement le système unlink() fonction. Puisqu'elle renvoie l'erreur No such file or directory vous pouvez commencer par regarder exactement ce que la structure du répertoire dit du fichier.

ls utilise le readdir() et renvoie une erreur en essayant de lire l'entrée du répertoire. Vous devriez utiliser la fonction getdents() appeler directement pour lire le dir. Heureusement, il existe un exemple complet dans man 2 getdents que vous pouvez compiler et utiliser sans avoir à modifier quoi que ce soit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X