O que há de errado com os comandos abaixo?
$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory
No entanto
$ mkdir ~/Music/240118
funciona.
Nunca pensei que faria essas perguntas depois de anos usando o bash ...
A expansão do til não funciona depois que a variável é expandida; portanto, se você colocar um til literal em
var
, ele terminará como um til literal emmkdir
. (Observe como a mensagem de erro demkdir
tem um til literal, não o caminho real do seu diretório inicial.)E, como você coloca o til entre aspas na tarefa, ele também não se expande. Se não estiver entre aspas, faz:
Claro, você sempre pode usar apenas
$HOME
: