Como pode haver um diretório chamado '~'?

4

Eu estava tentando testar essa nova ferramenta com bugs para ver como ela funciona, e isso me levou a escolher um diretório para usar em coisas que estou fazendo. No diretório ~/Code/indep , digitei ~/Code/indep/tarbell . (Estúpido, eu poderia ter apenas digitado 'tarbell', mas tanto faz.) Isso me levou a criá-lo porque ele não existia, eu disse sim. Quando inspecionei o conteúdo deste diretório, aqui está o que eu vejo:

brian@navis:~/Code/indep$ ls
~ project1 project2 project3 ...

Eu pensei "oh, estranho, ele criou um link simbólico para ~". No entanto:

brian@navis:~/Code/indep$ file ./~
./~: directory

file acha que é um diretório.

brian@navis:~/Code/indep$ ls -l
drwxr-xr-x 3 brian brian 4096 Nov  8 16:50 ~
drwxr-xr-x 8 brian brian 4096 Oct 14 18:42 project1
drwxr-xr-x 3 brian brian 4096 Sep 10 21:15 project2
drwxr-xr-x 5 brian brian 4096 Oct 14 19:33 project3
...

E o mesmo acontece com ls -l .

Eu pensei, "oh, ... é um link difícil? Eu nunca usei isso." Mas eu tentei reproduzir, e é impossível criar um link físico para um diretório. Então ... acho que reduzi isso a coisas que não entendo. Eu montei meu diretório home neste outro diretório de alguma forma?

Meu principal objetivo neste momento é remover a referência ao meu diretório inicial nesta pasta ( rm não parece ser a resposta), mas também estou curioso para saber o que está acontecendo.

EDITAR:

Em retrospecto, eu entendo exatamente o que aconteceu. Como foi respondido abaixo, o programa criou um diretório chamado " ~ " dentro do meu diretório atual. O único fato realmente ofuscante sobre isso é que eu não era consistente com a forma como eu estava realmente vendo o que era o diretório. Às vezes eu me referia a ele como " ~ " e às vezes como " ./~ ". É só se você fizer o último que você pode realmente ver o que está acontecendo, mas até que eu entendi isso, eu estava combinando o que eu estava vendo usando o caminho absoluto de " ~ " para o que era de fato um diretório local.

    
por Brian Peterson 09.11.2013 / 00:20

1 resposta

9

É um diretório cujo nome é "~". Seu shell tentará expandir "~" se for o primeiro caractere de um argumento, então você precisa tomar medidas especiais.

$ mkdir ./~
$ file ./~
./~: directory
$ rm -ri ./~
rm: remove directory ‘./~’? y
    
por 09.11.2013 / 00:26