Для этого вам потребуется сценарий, поэтому вы не можете сделать это напрямую с опцией -exec (если вы не используете bash -c , что затрудняет цитирование и расширение параметров).
Есть два варианта:
- Используйте find /src/backup/ | while read -r f; do ...; done- это будет работать, если у вас есть нормальные имена файлов (без начальных / конечных пробелов или встроенных новых строк).
- Вызовите файл сценария с нужными вам командами, например, find /src/backup/ -mmin +60 -exec /Path/To/moveunique {} /dest/backup/- в этом случае я рекомендую указать полный путь к сценарию в Линияcrontab, так как ее окружение отличается от вашей интерактивной оболочки.
Я проиллюстрирую первый вариант: должно быть очевидно, как использовать подобные команды в файле сценария:
find /src/backup/ | while read -r f; do \
    mv "$f" /dest/backup/"${f%/*}"/$(date -d@$(stat "$f" -c %Y) +'%Y%m%d-%H%M')-"${f##*/}"; \
done
Он использует stat для получения времени модификации файла, date для форматирования нужных вам полей времени и расширения параметра для разделения пути и имени каталога файла.
Это делает довольно длинную командную строку (я использовал строки продолжения, чтобы сделать ее более читабельной, и я не проверял, поддерживает ли crontab это), поэтому вы предпочитаете использовать скрипт.