UNIX / BASH: Список файлов, измененных за определенный месяц

Я борюсь с перечислением файлов, измененных за определенный месяц (например, февраль). Вот несколько неудачных попыток:

1) Я попытался создать временные файлы и установить для них отметку времени первый раз в следующем месяце и первый раз в целевом месяце и использовал -newer в find, например:

find -newer "$from" ! -newer "$to"

Это перечисляет файлы, измененные во временном интервале ($ from, $ to], но мне нужен временной интервал [$ from, $ to) (в противном случае были бы ложные срабатывания на файлы, созданные в первую секунду следующего месяца). Перечисление файлов, измененных в феврале, является дополнительной проблемой, поскольку для этого потребуется установить одну из меток времени на самую большую в феврале, но количество дней в феврале варьируется в зависимости от того, високосный год это или нет, что требует дополнительной проверки. .

2) Если я использую ls , я вижу много сложностей при синтаксическом анализе из-за того, что имя пользователя или группа могут содержать пробелы.

Есть ли простой и относительно переносимый способ сделать это (чтобы он работал в течение любого месяца, независимо от имен файлов и т. Д.)?

12
задан Cœur 14 February 2017 в 13:33
поделиться