supprimer un fichier avec un nom corrompu

1

Alors c'est arrivé:

$ ls
''$'\342\200''abc2.16.5'
$ ls | od -c
0000000 342 200   a   b   c   2   .   1   6   .   5  \n
$ ls -il
76236897 -rw-rw-r-- 1 mob users 0 Aug 16 17:52 ''$'\342\200''abc2.16.5'

Comment puis-je supprimer ce fichier? Voici certaines choses qui n'ont pas fonctionné:

$ rm -i -- *
rm: remove regular file ''$'\342\200''abc2.16.5'? y
rm: cannot remove ''$'\342\200''abc2.16.5': No such file or directory

$ rm ./*
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory

$ rm ./<TAB>        # for file name completion
rm: cannot remove './'$'\342\200''abc2.16.5': No such file or directory

$ find . -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory

$ perl -e 'unlink(glob("*")) or die $!'
$ perl -e 'unlink(glob("*2.16.5")) or die $!'
No such file or directory at -e line 1.

$ find . -inum 76236897 -delete
find: cannot delete './\342\200abc2.16.5': No such file or directory

$ rename * xxx ; rm -v xxx
rm: cannot remove 'xxx': No such file or directory

Curieusement, truncate * --size 0fonctionne, cat *fonctionne, shred *fonctionne

Que devrais-je essayer ensuite? Le système est la version 6.8 du serveur Red Hat Enterprise Linux.

foule
la source
La suppression du répertoire contenant le fichier est-elle une option?
confettis
Pas à moins que quelqu'un sache comment supprimer un répertoire non vide
Mob
rm -rfdevrait le faire pour vous.
confettis
rm -rfvide d'abord un répertoire, puis le supprime. Malheureusement, aussi ne fonctionne pas.
Mob
2
Je pense que vous avez la corruption du système de fichiers. Pouvez-vous démarrer en mode lecture seule et exécuter fscksur la partition avec le fichier non effaçable?
Deltik

Réponses:

1

Puisque vous dites que ça shredmarche, j'aimerais suggérer d'ajouter l' -uargument à déchiqueter.

Depuis la page de manuel ( man shred):

-u désalloue et supprime le fichier après écrasement

Je voudrais donc essayer shred -n 0 -u *dans le répertoire contenant le fichier.

confettis
la source
:-( shred: ''$'\342\200''abc2.16.5': failed to remove: No such file or directory. J'apprécie l'effort cependant.
Mob
Pouvez-vous ajouter le résultat de ls -là l'OP? Curieux de savoir à quoi ressemblent les autorisations du fichier.
confettis
0

Cela m'est souvent arrivé au fil des ans. Pour moi, cela s’est généralement produit sur une partition Windows NTFS; vous utilisez RHEL, mais peut-être que le même processus vous aidera.

Je n'ai jamais réussi à supprimer le fichier corrompu ou le répertoire parent.

J'ai toujours eu à:

  • Sauvegarder tous les fichiers (moins le répertoire contenant le fichier corrompu)
  • Formater la partition
  • Restaurer tous les fichiers

Si le formatage de la partition n’est pas réalisable et que le fichier corrompu ne pose aucun problème réel, vous pouvez également procéder comme suit:

  • Mettre le fichier corrompu dans son propre répertoire
    • copier le fichier corrompu dans un nouveau répertoire
    • copier tous les autres bons fichiers dans un nouveau répertoire
  • Déplacez le répertoire contenant le fichier corrompu vers $TEMPun endroit où il peut être ignoré en toute sécurité
  • Remettez tous les autres bons fichiers là où ils étaient
JonathanDavidArndt
la source