J'ai accidentellement créé un file nommé °
. Maintenant, j'ai du mal à le supprimer avec bash.
[/opt/etc/sudoers.d] # ls -l -r--r----- 1 admin administ 21 Feb 3 23:54 010-root -rw-r--r-- 1 admin administ 20 Feb 3 23:50 °
La frappe de rm °
ne fait que déplacer le slider vers le début de la ligne, c'est-à-dire qu'aucun caractère n'est entré.
(Pour ce que ça vaut, je cours bash 3.2.0 sur une machine distante connectée à SSH en utilisant Mac OSX Terminal)
Des idées?
Que diriez-vous?
rm -i ?
Je pense que ça devrait marcher …
S'il y a beaucoup de correspondances à utiliser un caractère générique avec rm comme rm -i ?
, vous pouvez toujours le supprimer par le numéro d'inode à la place:
ls -i
find . -inum <inode> -ok rm '{}' \;
Où <inode>
est le numéro d'inode de ls -i
, qui répertorie tous les numéros d'inode des files du directory courant.
Le rm -i ?
la réponse est bien.
Cela fonctionnerait aussi:
rm [^az]
comme le ferait
rm [[:punct:]]
Et pourquoi revenir au début de la ligne, comment tapez-vous le ˚
? Peut-être que l'input est interprétée comme Ctrl+A
ou un autre raccourci qui est utilisé par le shell pour aller au début de la ligne.
Existe-t-il un paramètre pour définir l'enencoding ou le jeu de caractères sur utf-8
dans l'application du terminal? Qu'imprime-t-il si vous exécutez des locale
dans la session du terminal?
Et comment avez-vous créé le file? Peut-être que vous pouvez utiliser une méthode similaire pour le supprimer?