J'ai un petit fichier embêtant dont le nom semble être un seul caractère, et ce caractère est un \r
Comment puis-je supprimer cela?
C'est ce que je reçois avec ls -bl
:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
ls -l
affichez-le simplement "?"
linux
bash
filesystems
Colin
la source
la source
Réponses:
Nous
ls -li
pour obtenir le numéro d'inode du fichier (première colonne), puis utiliserfind
pour le supprimer (en supposant que l'inode est 12345):find . -inum 12345 -exec rm -i {} \;
la source
find
installée, vous pouvez également le fairefind . -inum 12345 -delete
utilisez la citation ANSI-C:
rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
la source
J'atteindrais personnellement Python:
Mais vous pouvez également le faire à partir du shell si vous comprenez les caractères d'échappement.
la source
Un autre moyen rapide de supprimer un fichier appelé
<carriage return>
si vous utilisez le shell Bash est:la source
Les noms de fichiers à un caractère sont inhabituels, et si vous n'avez aucun autre fichier de ce type dans votre répertoire, vous pouvez essayer ceci:
Je suis trop paresseux pour apprendre ou chercher comment citer des caractères étranges, j'ai donc utilisé des variantes de cela à plusieurs reprises lorsque j'étais coincé avec des fichiers avec des noms difficiles.
la source
man bash
. Essayeztouch a b c d $'\r'; rm ?