Quando você cria o alias, $testor
não tem valor e, portanto, o alias será
export testor=13;mkdir ~/Desktop/
Você pode ver o que um alias expande para com alias aliasname
.
Para corrigir isso, use aspas simples em vez de aspas duplas. Isso adia a expansão de variáveis e substituições de comandos até que você invoque o alias.
Se você não precisa de $testor
para mais nada, basta usar
alias tester='mkdir "$HOME/Desktop/$(date '+%d')"'
Lendo seus comentários, isso também funcionaria:
alias makedir='mkdir "$HOME/Desktop/$(date '+%d')"'
alias copyfile='cp somefile "$HOME/Desktop/$(date '+%d')"
Ou, alternativamente, uma função de shell mais elaborada que permite copiar qualquer arquivo para a pasta (que você nunca seria capaz de fazer com um alias).
copyfile () {
destfolder="$HOME/Desktop/$(date '+%d')"
if [ -d "$destfolder" ]; then
mkdir "$destfolder"
fi
cp "$1" "$destfolder"
}
Isso define uma função chamada copyfile
que usará cp
para copiar o arquivo fornecido na linha de comando para uma pasta com data e hora. Se a pasta não existir, ela será criada.