Observe que ~
é expandido pelo shell para o valor de ${HOME}
, não é possível inserir isso como entrada para um programa e esperar que ele seja traduzido automaticamente para ${HOME}
(a menos que você o especifique como um opção de linha de comando para o programa, o que dá ao shell uma chance de realizar a substituição).
Se você quiser gravar no diretório inicial, poderá fazer com que seu programa procure a variável de ambiente ${HOME}
. Então, quem quer que seja, e onde quer que esteja em casa, você terá a resposta certa.