O problema não é com seu comando mv
.
Expansão de til é o nome do que o shell faz quando substitui o caractere ~
pelo diretório pessoal do usuário, por exemplo, %código%. É possível dizer ao shell para não fazer isso citando o caractere til. Isso é exatamente o que você fez em
DEST="~/scripts/backup"
Você atribuiu a /home/username
a string DEST
. Este diretório não existe realmente. Duas soluções:
-
Não cite o caractere
~/scripts/backup
:DEST=~/scripts/backup
-
Use
~
:DEST="$HOME/scripts/backup"
Uma dica final de depuração
Coloque $HOME
no topo do seu script para ativar a opção set -x
. Se você tivesse feito isso, você teria visto que o comando xtrace
estava usando o diretório errado, mv
em vez de ~/scripts/backup
.