Estou usando o terminal em uma máquina Ubuntu e há um arquivo que gostaria de excluir. O nome do arquivo é \
(apenas uma barra invertida).
Agora normalmente eu faria
rm filename
No entanto, se eu fizer rm \
isso, acho que estou tentando escrever um comando com várias linhas.
Como posso excluir este arquivo? Eu sei que eu poderia apenas usar o sistema de arquivos da GUI, mas isso não é muito eficiente.
Então, como posso excluir (no terminal) um arquivo chamado \
?
code
bloco aqui neste comentário!)fsck
. A sério. Se um arquivo nomeado/
existir, seu sistema de arquivos está corrompido.*
...Respostas:
Use
rm \\
(escape da barra invertida com outra barra invertida). Observe que isso também funciona de maneira semelhante, para diretórios nomeados\
(usandormdir
ourm
com o-r
sinalizador).Exemplo:
fonte
rm '\'
(mas nãorm "\"
).\
caractere é usado como caractere de escape em cadeias delimitadas por aspas duplas. O provérbiorm "\"
será analisado em uma sequência não fechada, pois a segunda aspas é usada com um caractere de escape (e, portanto, será analisada como o próprio caractere de aspas duplas, e não no final de uma sequência). Assim, o terminal aguardará até que você termine a sequência com outra"
. O método equivalente para usar aspas duplas aqui seriarm "\\"
(o que é diretamente equivalente a ambosrm '\'
erm \\
, como você já confirmou).Uma tática geral para excluir manualmente arquivos com caracteres estranhos em seus nomes é
Isso solicitará que você escolha se deseja excluir ou não cada arquivo no diretório.
fonte
rm -i ./?
./
Você também pode desvincular referenciando o inode de um arquivo
fonte
Por favor, verifique o inode do arquivo primeiro. ls -li
137791 -rw-rw-r--. 1 svr svr 366 11 de mar 15:57
O inode de "\" é "137791 e, em seguida, use o comando find para excluir" \ "com o número do inode.
encontrar . -inum 137791 -exec rm -i {} \;
rm: remove o arquivo normal `./ \ '? sim
"\" será removido então.
fonte