A maneira como expansão de til funciona é que prefixo de til consiste em ~ mais todos os caracteres antes da primeira barra sem aspas ou no final da palavra, se não há nenhuma barra sem marcação. Então a substituição que acontece depende do prefixo do til; ~ , ~- e ~+ são casos especiais, caso contrário, o ~ é retirado e o restante dos caracteres é considerado um nome de usuário. Veja man bash (ou a página de manual do seu shell se esse shell não for Bash).
-
Em
~"/mydata", o til é seguido por uma barra em citada e, portanto, o prefixo til é~/mydata; já que não há uma conta de usuário chamada/mydata, o prefixo til não será substituído e o shell estará procurando por um diretório chamado literalmente~/mydatae não o encontrará. -
Em
~/"mydata"o til é seguido por uma barra sem aspas e, assim, o til é substituído pelo conteúdo de$HOMEseHOMEfor definido, caso contrário, com o nome do diretório inicial do usuário (retirado de/etc/passwd); o shell estará procurando por um nome de diretório como/home/username/mydata.