$ cp todo.txt !#:1.bak cp todo.txt todo.txt.bak
NOTE: Actually you can use !#:1 in every command 'cause that's last argument passed to a command.
UPDATED: Now it works with zsh
From us to your inbox weekly.