J'utilise Ubuntu 9.10 (Karmic) et j'ai un répertoire avec beaucoup de fichiers, parmi lesquels ces deux fichiers:
./baer.jpg
./bär.jpg
Je voudrais supprimer bär.jpg
mais je ne peux pas.
Si je tape rm b
et que je tape TAB
, les deux fichiers s'affichent, si j'ajoute ä
et que je tape TAB
, rien ne s'affiche.
Que faut-il faire pour supprimer bär.jpg
?
Supprimer le dossier parent n'est pas une solution pour moi, car il contient de nombreux fichiers utilisés par un environnement productif.
Je viens de découvrir comment supprimer de tels fichiers avec des caractères spéciaux:
cd <directory with that file>
ls -ALi
Supprimer votre fichier via l'ID d'inode:
find . -inum <inode ID of your file> -exec rm -i {} \;
Cela a bien fonctionné pour mon problème. J'espère que cela t'aides!
Vous pouvez utiliser caractères génériques bash avec
rm b?r.jpg
où ?
représente exactement un caractère. Une alternative (si les deux noms de fichier avaient la même longueur) serait
rm b[!e]r.jpg
où [!e]
signifie tout caractère sauf "e".
Eh bien, vous pouvez essayer d’utiliser la correspondance via grep
pour supprimer le fichier s’il s’agit d’un fichier problématique.
neal@dsadsa:~$ touch junk_ä_deleteme
neal@dsadsa:~$ ls | grep junk | grep deleteme | xargs rm
Ici, je crée un fichier nommé junk_ä_deleteme
. Je le supprime ensuite en faisant correspondre les caractères avant ("junk") et après ("deleteme") du symbole amusant. Cette approche n'est pas très bonne, mais s'il s'agit d'un seul fichier, cela pourrait fonctionner.
Une meilleure solution serait peut-être de former une expression rationnelle correspondant à votre fichier, puis de diriger ce nom de fichier vers rm
.