Die Shell erweitert die Befehlszeile, die den alias
enthält Befehl und übergibt so etwas wie td=touch 2010-09-17_21-54.txt
bis alias
Befehl. Sie müssen die Sonderzeichen in der Alias-Definition vor Expansion schützen. Am einfachsten ist es, einfache Anführungszeichen anstelle von doppelten Anführungszeichen zu verwenden:
alias td='touch `date "+%Y-%m-%d_%H-%M"`.txt'
Dann td
ist ein Alias für touch `date "+%Y-%m-%d_%H-%M"`.txt
wie gewünscht.
Obwohl es hier kein Problem ist, empfehle ich die Verwendung von $(…)
statt `…`
, um Schwierigkeiten mit komplexen Befehlen zu vermeiden (Backquotes haben obskure und nicht übertragbare Zitierregeln, während Dollar-Klammern intuitiv funktionieren):
alias td='touch $(date "+%Y-%m-%d_%H-%M").txt'