Remova o arquivo Linux nomeado com um conjunto de caracteres responsivos ao shell

Remova o arquivo Linux nomeado com um conjunto de caracteres responsivos ao shell

Criei um arquivo chamado \;:$"\'para testar um software meu. Acabei com um erro porque não consigo excluir a propriedade do arquivo. Estou tentando encontrar uma combinação precisa de caracteres para removê-lo via rm, mas não consigo encontrar uma maneira.

rm \\;:$\"\\\'
rm: cannot remove `\\': No such file or directory

rm "\\"\;:$\"\\\'
rm: cannot remove `\\;:$"\\\'': No such file or directory

rm '\;:$"\'''
rm: cannot remove `\\;:$"\\': No such file or directory

(Esta última tentativa me matou)

E muitas outras tentativas. Precisa de ajuda!

Responder1

Se o nome do arquivo for exatamente \;:$"\', você poderá removê-lo com:

rm \\\;\:\$\"\\\'

Basta escapar de todos os personagens com um único arquivo \.

Responder2

Você pode tentar ls -lino diretório que contém o arquivo e excluir o arquivo com o inode retornado emitindofind . -inum <inode-number> -exec rm -i {} \;

Eu adicionei o -icomando find para avisar antes da exclusão, caso outro arquivo seja encontrado pelo comando find do que o esperado.

Além do comentário, tentei criar e remover o arquivo sozinho:

ls -l
total 0
-rw-r--r-- 1 test test 0 mrt 24 14:11 \;:$"\'

[test@testhost +1] /tmp/ff$ rm \\\;\:\$\"\\\' 

[test@testhost +1] /tmp/ff$ ls -l
total 0

Responder3

Você pode usar aspas simples e só precisa se preocupar em citar as aspas simples em si.

rm '\;:$"\'\'

No uso interativo, você pode simplesmente usar o preenchimento de tabulação, começando com '\ou \\. Preenchimento de tabulação de '\yields '\;:$"\'\''', já que o bash simplesmente substitui todas as aspas simples incorporadas por '\''. Conclusão da guia do nada ou de \\rendimentos \\\;\:\$\"\\\'.

Responder4

Se você não estiver limitado a usar bash ou outro ambiente de script de shell, uma maneira fácil de remover esse arquivo provavelmente seria escrever um programa curto que simplesmente chame unlink()seu idioma favorito ou usar um gerenciador de arquivos como Gnome Commander ou Midnight Commander para excluir o arquivo manualmente. A última opção permitiria selecionar o arquivo em questão e excluí-lo sem precisar inserir o nome do arquivo em qualquer lugar, o que eliminaria a possibilidade de metacaracteres terem qualquer significado especial.

informação relacionada