BASH Изменить имя файла с добавление к его имени текущей даты с помощью Find

текущая команда поиска

find /home/kali/Desktop/exam/logs/ -cmin 10 -exec cp '{}' /home/kali/Desktop/exam/backup/ \;

На данный момент у меня есть такая команда в скрипте, которая ищет в папке logs файлы, которые были изменены за последние 10 минут и копирует их в папку backup.

Мне необходимо к этим копируемым файлам добавить после имени файла текущую дату и время в формате file_YYYY-MM-DD_HH-MM .

Имя файла мне неизвестно, я не могу при копировании после директории написать изменение имени со старого на новое.


Ответы (1 шт):

Автор решения: user207200
#!/bin/bash
cd /home/kali/Desktop/exam/logs
find * -maxdepth 0 -type f -cmin -10 -exec cp "{}" "/home/kali/Desktop/exam/backup/{}_`date +%Y-%m-%d_%H-%M`" \;

P.S. Для подобных задач можно прикрутить logrotate, написав конфигурацию для конкретной директории. Запускать можно через crontab или systemd-timer.

→ Ссылка