rm ne pas supprimer le file, pense que c'est un directory

J'ai un disque dur avec des windows chargées sur elle connectée à ma machine Linux pour sauvegarder une partie de l'information. Je veux supprimer l'un des dossiers "files Internet temporaires" et il a supprimé tous sauf un d'entre eux. Il a renvoyé une erreur avec (avec le path menant à travers certains directorys):

rm: cannot remove '<path>/dorothy[1].js': Is a directory 

J'ai ensuite utilisé cd pour arriver à l'endroit où se trouvait le file et j'ai lancé ceci:

 rm -rf dorothy[1].js 

Il est returnné sans erreur, mais si je l'ai encore apparaît dans le directory. J'ai aussi essayé d'utiliser ces deux methods pour le supprimer, mais en vain (avec <inode> étant l'inode du nom de file).

 ls -i find . -inode <inode> -delete find . -inode <inode> -exec rm {} \. 

J'ai ensuite essayé de faire cd dorothy[1].js qui a fonctionné. Une fois à l'intérieur j'ai utilisé ls qui a returnné ceci:

 ls: reading directory.: Input/output error 

Alors, comment puis-je supprimer cela?

Vous avez un système de files NTFS. Dans ce cas, vous ne pouvez pas résoudre le problème en toute security sauf sur un ordinateur Windows. (Le code Linux est bon, mais je ne peux pas vous reorder de le faire pour réparer un système de files étranger.)

Emportez le disque sur votre système Windows et exécutez CHKDSK /FQ: ou la lettre de lecteur qui lui a été assignée. Ensuite, essayez de supprimer le file. Si cela échoue, vous devrez attendre CHKDSK /RQ: ce qui peut prendre plusieurs heures à s'exécuter.

Reportez-vous au commentaire de Mat.

C'est l'heure de fsck.

La situation que vous décrivez est rare. Il semble que vous avez au less deux inodes pointant vers dorothy [1] .js + l'input du directory pour un inode est corrompue + pense qu'il pointe vers un directory.

Cela ne devrait jamais arriver, sauf si vous utilisez le code dev / bêta pour un système de files.

Exécutez d'abord fsck. Assurez-vous ensuite que vous utilisez un code de système de files stable, ce que vous êtes probablement. Ensuite, l'étape suivante consiste à examiner tout code personnalisé qui a été écrit (terme technique) dans la structure du directory physique sur le disque (frémissement).

De plus, votre nom de file est intéressant car il contient des chars [[]] qui, dans de nombreux cas, seront étendus à une forme d'expression régulière. Cela peut ou peut ne pas avoir à voir avec votre situation.

Si après un fsck tout fonctionne + le problème se reproduit, vous êtes probablement dans un long debugging en commençant par vous postr la version du kernel + tous les logiciels installés sur votre système.