Como apagar um diretório chamado ~?

2

Um programa de defeitos criou um diretório chamado ~ .

Se eu fizer rm \~ e, em seguida, TAB it for traduzido para ~/ , que é o diretório inicial dos usuários.

Como excluir esse diretório?

Atualizar

Veja minha resposta que resolveu o problema. É baseado nas respostas postadas.

    
por Sandra 29.11.2011 / 14:55

8 respostas

11
rmdir ./~

Então, basicamente, você está especificando o caminho de tal forma que não haverá expansão do shell no "~".

    
por 29.11.2011 / 15:04
6

Use rmdir '~' , o que deve funcionar.

    
por 29.11.2011 / 14:58
4

Como resposta geral para qualquer arquivo.

ls -i

pegue esse número e coloque-o em find -maxdepth 1 -inum [number] -exec rm -r {} \;

    
por 29.11.2011 / 16:21
2

Eu confirmei os seguintes trabalhos. Você pode usar a conclusão de tabulação também.

rm ./~
    
por 29.11.2011 / 15:05
1

Sem pressionar a guia, tente

rmdir \~
    
por 29.11.2011 / 15:00
1

Dar o caminho absoluto resolveu o problema.

rmdir /home/user/~

e o TAB não o reescreveu para outra coisa.

    
por 29.11.2011 / 15:05
1

O shell executa a expansão de curingas em vários símbolos reservados, sendo o til um exemplo. Quando a concha vê

$ rm ~

Ele expande o til para o caminho do diretório pessoal do usuário. Essencialmente, o shell "vê" isso:

$ rm /home/$USER/

Para evitar a expansão de curingas, escape do símbolo com \ , assim:

$ rm \~

Isso garantirá que o shell lide com o ~ literalmente.

Você tem duas opções para excluir um diretório chamado ~ :

Para um diretório não vazio, passe o sinalizador recursivo para rm :

$ rm -r \~

E para um diretório vazio:

$ rmdir \~
    
por 10.05.2012 / 08:35
0

primeiro pensamento seria "não use tab", mas não testado. Melhor opção: instale o "mc" (midnight commander) e apague o diretório de sua interface. é um pouco de uma solução alternativa embora.

    
por 29.11.2011 / 14:59

Tags