копирование и архивирование файлов по дате в BASH
Есть папка directory, в которой лежат файлы:
file1.ogg(дата создания 01.08);randomfile2.ogg(дата создания 10.08);filename3.ogg(дата создания 15.08).
Хочу написать скрипт, который по команде:
sh tar_by_date.sh directory/ '08.08' '28.08' # (путь, начальная дата, конечная дата)
Создаёт архив directory.tar.gz из указанной папки с файлами, у которых дата создания входит в указанный промежуток
Какими командами и как правильно пользоваться?
Ответы (1 шт):
Автор решения: Pak Uula
→ Ссылка
$ tar cfz archive.tar.gz `find -type f -newermt 2021-05-30 -not -newermt 2021-06-15`
Команда создаст архив из файлов, которые модифицированы после 2021-05-30, но не позже чем 2021-06-15.
Команда find поддерживает несколько видов предикатов "новее чем". Кроме того есть возможность задать относительный возраст "старше, чем несколько дней назад"
Варианты форматов даты описаны в документации date.