4 votes

Supprimer un fichier dont le nom contient <Down> ?

Ainsi, sur une machine CentOS, j'ai accidentellement exécuté :w<Down> en un vim éditeur, avec " <Down> "en appuyant littéralement sur la touche flèche vers le bas du clavier (rendu à l'écran par " <Down> "), et j'ai maintenant un fichier nommé " <Down> "dont je ne parviens pas à me débarrasser ; l'exécution de " rm <Down> "(épelant littéralement "less-than, D, o, w, n, greater-than") donne une erreur de syntaxe.

Comment puis-je me débarrasser de ce fichier au nom bizarre ?

12voto

Warner Points 23292

Utilisez des guillemets simples pour éviter que les caractères de contrôle ne soient traités :

rm -f '<Down>'

9voto

Drew Chapin Points 859

Utilisez \ pour échapper aux caractères spéciaux. Dans ce cas, vous utiliserez

rm \<Down\>

5voto

medina Points 1950

Comme solution alternative :

$ ls -il .
total 0
1439039 -rw-r--r-- 1 medina foo 0 2010-07-15 16:48 ?????

# http://www.gnu.org/software/findutils/manual/html_mono/find.html#Deleting-Files
$ find . -inum 1439039 -delete

2voto

Jader Dias Points 23461

Le moyen le plus simple que j'ai trouvé pour traiter tous les cas d'échappement est d'utiliser un langage de script :

$ cd /tmp/test/
$ ls
<Down>
$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.unlink('<Down>')
>>> quit()
$ ls

1voto

Type rm <D puis appuyez sur la touche TAB , des suggestions s'affichent pour le nom du fichier souhaité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X