Sim, você precisará usar uma substituição de comando:
mycommand &> "$(date +%Y-%m-%d_%H-%M-%S.txt)"
Qual é bash
-speak para
mycommand >"$(date +%Y-%m-%d_%H-%M-%S.txt)" 2>&1
Qual é o mesmo que
mycommand >"$(date +%F_%H-%M-%S.txt)" 2>&1
( %F
é o mesmo que %Y-%m-%d
)
Uma substituição de comando, $(...)
, será substituída pela saída do comando dentro.
O que você usou foi um sub-shell, (...)
. Um sub-shell não pode aceitar redirecionamentos como esse.