Como funciona a expansão do til do bash:
If a word begins with an unquoted tilde character (‘~’), all of the characters up to the first unquoted slash (or all characters, if there is no unquoted slash) are considered a tilde-prefix.
Vamos supor que seu diretório inicial é /home/user
e você está nele, o exemplo primeiro :
cd "~/my data"
Isso tenta cd
em um diretório com o caminho /home/user/~/my data/
. Observe que ~
é um caractere válido em nomes de diretórios ou arquivos.
O exemplo segundo :
cd ~"/my data"
Isso faz o mesmo que o primeiro. Se sua maravilha, é porque a barra é citada, como indicado na citação acima.
O exemplo terceiro :
cd ~/"my data"
Isso faz a expansão do til, porque a barra não é citada e, portanto, é substituída pelo conteúdo da variável de ambiente $HOME
. Isso muda para o diretório /home/user/my data/
.