Eu tenho um pequeno arquivo irritante cujo nome parece ser um caractere único, e esse caractere é um \r
Como posso excluir isso?
É com isso que recebo ls -bl
:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
ls -l
apenas exiba "?"
linux
bash
filesystems
Colin
fonte
fonte
Respostas:
-Nos
ls -li
para obter o número inode para o arquivo (primeira coluna), então usefind
para excluí-lo (assumindo inode é 12345):find . -inum 12345 -exec rm -i {} \;
fonte
find
instalado, você também pode fazerfind . -inum 12345 -delete
use a citação ANSI-C:
rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
fonte
Eu pessoalmente procuraria por Python:
Mas você também pode fazer isso a partir do shell se entender os caracteres de escape.
fonte
Outra maneira rápida de remover um arquivo chamado
<carriage return>
se você estiver usando o shell Bash é:fonte
Os nomes de arquivo com um caractere são incomuns e, se você não tiver outros arquivos no diretório, tente:
Estou com preguiça de aprender ou procurar como citar caracteres estranhos, por isso usei variantes disso várias vezes quando estava preso a arquivos com nomes difíceis.
fonte
man bash
. Tentetouch a b c d $'\r'; rm ?