Comment puis-je supprimer un fichier qui existe mais que le système dit ne pas y être?
Avertissement: ces instructions nécessiteront l’utilisation de
debugfs
name__. Ils peuvent entraîner une perte de données.Ils sont adaptés au problème initial et peuvent ne pas être exacts pour les futurs visiteurs sur cette page. Toute perte de données peut être irréparable ou même aggravée par
fsck
name__.
C'est peut-être un inode perdu. Veuillez exécuter ls -li
pour obtenir une liste des numéros d'inode. Vous pouvez ensuite essayer de vider l'inode référencé. Par exemple, si votre ls -li
ressemble à ceci:
rarkenin@ubuntu-alt-64-vbox-1:~$ ls -li
total 58672
4980758 -rwxr-xr-x 2 rarkenin rarkenin 4096 Sep 23 18:45 panorama.jpg
---SNIP---
le numéro d'inode est alors 4980758, comme indiqué dans la liste en tant que première colonne.
Vous pouvez ensuite essayer de vider l'inode. Veuillez lire le post en entier avant de faire quoi que ce soit .
Lancez debugfs
en tant que root:
rarkenin@ubuntu-alt-64-vbox-1:~$ Sudo debugfs
[Sudo] password for rarkenin:
debugfs 1.42 (29-Nov-2011)
debugfs:
et donnez la commande open /dev/sda1
avec le périphérique de bloc correct pour votre partition.
Ensuite, donnez la commande pour vider l’inode dont vous avez obtenu le numéro plus tôt:
cat <4980758>
utilisez <
et >
autour du numéro d'inode.
S'il lit du texte au hasard, fermez le terminal et ouvrez-le à nouveau. Exécutez à nouveau debugfs
et relancez la commande open
name__.
Maintenant, vous pouvez essayer de supprimer le fichier. Cela peut entraîner une corruption grave du système de fichiers.
debugfs: rm [filename]
debugfs: unlink [filename]
debugfs: kill_file [filename]
debugfs: kill_file <inode>
Notez que cela peut être fait même s'il s'avère que le fichier n'a jamais eu d'inode. Essayez les commandes une à la fois, dans l’ordre indiqué ci-dessus. Quittez debugfs et vérifiez si le fichier existe. Sinon, recommencez mais suivez les instructions suivantes.
Je sais que c'est vieux, mais j'ai eu le même problème que le vôtre, seulement avec un dossier, pas avec un fichier. Aucune des méthodes suggérées ici n'a fonctionné.
J'ai réussi à résoudre le problème en créant un dossier dans la même position et avec le même nom que celui que je n'ai pas pu supprimer. Le dossier a été créé correctement et il "a remplacé" celui qui n'existe pas. Ensuite, j'ai simplement supprimé le nouveau dossier et le problème avait disparu. Simplement comme ça.
J'ai eu le même problème. C'était un problème dans les entrées d'index de la partition. Je l'ai résolu en démarrant Windows si votre système est à double amorçage ou en insérant un live CD de Windows XP ou Windows 7, puis procédez comme suit:
cmd
click-click -> Run as administrator.chkdsk /f/x D:
(où D est la lettre de votre lecteur).100% de travail
En regardant vos captures d'écran, je vois que le groupe est défini en tant que root. Je voudrais essayer d'utiliser chown et voir si cela résout le problème.
Sudo chown -hR [username]:[username] /home/[username]
Remplacer [nom d'utilisateur] par votre nom d'utilisateur.
Vous aurez quelques erreurs.
Linux Mint 18.3 Mon fichier inexistant était "nomfichier.pdf.crdownload". Il s’affichait sur mon bureau sous la forme d’un paquet, c’est-à-dire un fichier Zip sous Windows. Pour le plaisir j'ai fait un clic droit, Propriétés, Ouvrir avec, qui ne montrait aucune application, alors je l'ai changé en Ouvrir avec ¨Archive Manager¨. Immédiatement, le fichier a disparu de mon bureau. kb
J'ai eu un même problème avec le fichier créé par EMR (dossier médical électronique) sur une base Web personnalisée sous chrome. Sudo touch /forcefsck
suivi d'un redémarrage a fonctionné pour moi et un fichier supprimé automatiquement. Aide pris forme pages suivantes
Comme ubfan1 l'a dit, les caractères non-imprimés dans les noms de fichiers peuvent causer de tels problèmes.
a travaillé pour moi depuis que 'touch' a remplacé le fichier corrompu.
montrez-nous le terminal .... faites un ll | grep panorama
et montrez-le nous; ajoutez-le à votre question ...
Ma suggestion est de faire en tant que rootrm -f panorama.jpg
.
dans l'homme de la chambre j'ai trouvé ceci:
-f, --force
ignore nonexistent files, never Prompt
Commencez par vous connecter en tant que root avec Sudo -s
Vous pouvez essayer de faire rm -v <file>
et de regarder la sortie commentée pour voir ce qui se passe pendant que vous essayez de supprimer le fichier. Découvrez les options pour la commande ci-dessous.
Si cela échoue, vous pouvez utiliser l'option force comme tout le monde le dit. Vous pouvez également essayer de supprimer tout le répertoire en forçant une suppression récursive: rm -rfv **full directory address here**
À partir de Guide de commande UNIX:
SYNOPSIS
rm [OPTION]... FILE...
LA DESCRIPTION
rm removes each file. By default, it does not remove directories.
If a file is unwritable, the standard input is a tty, and the -f or
--force option is not given, rm prompts the user for whether to remove
the file. If the response is not affirmative, the file is skipped.
OPTIONS
Remove (unlink) the FILE(s).
-f, --force
ignore nonexistent files, never Prompt
-i, --interactive
Prompt before any removal
--no-preserve-root do not treat '/' specially (the default)
--preserve-root
fail to operate recursively on '/'
-r, -R, --recursive
remove directories and their contents recursively
-v, --verbose
explain what is being done
--help display this help and exit
--version
output version information and exit
By default, rm does not remove directories. Use the --recursive (-r or
-R) option to remove each listed directory, too, along with all of its
contents.
To remove a file whose name starts with a '-', for example '-foo', use
one of these commands:
rm -- -foo
rm ./-foo
Note that if you use rm to remove a file, it is usually possible to
recover the contents of that file. If you want more assurance that the
contents are truly unrecoverable, consider using shred.
Essayez de cette façon:
cd dir-to-delete
find ./ -exec rm -rf {} \;
La non impression des caractères dans les noms de fichiers peut causer de tels problèmes - comme un espace. Essayez l’option interactive de rm et dites "Y" au fichier que vous voulez supprimer "
rm -i "* pan *" Notez l'utilisation de * s pour faire correspondre tout caractère (même non-printint).
L'inode a peut-être été supprimé, mais pas l'entrée de répertoire. Essayez ls -i pour voir les inodes. fsck le système de fichiers pour résoudre ce genre de problème.