cron
трактует %
как переводы строк. Вы должны использовать escape, то есть использовать, \%
чтобы получить литерал, %
используемый в date
.
Итак, вам нужно:
date +"\%Y\%m\%d\%H\%M"
Или вы можете использовать скрипт, использовать все команды в скрипте и вызывать скрипт из crontab
.
От man 5 crontab
:
Знаки процента (%) в команде, если они не экранированы обратной косой чертой (\), будут заменены символами новой строки, и все данные после первого% будут отправлены команде в качестве стандартного ввода. Невозможно разделить одну командную строку на несколько строк, как, например, завершающий символ оболочки "\".