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.


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.


:-( 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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.