Я пишу сценарий оболочки, который извлекает все файлы в каталоге, которые последний раз изменялись x дней назад, начиная с 00:00 текущего дня.
Текущая команда find, которую я использую для этого, показана ниже, но она запустит проверку с момента запуска скрипта. Например. если скрипт был запущен в 12:00 и получил все файлы, измененные 7 дней назад или более, все файлы, которые были изменены после 12:00 7 дней назад, не будут включены в результатах поиска.
find $SEARCH_DIR -mtime +$DAYS_AGO
Я знаю, что в Bash вы можете использовать -daystart с find, чтобы решить эту проблему, но сценарий должен работать на машине IBM z/OS, которая использует / bin/sh, которая не поддерживает эту опцию.
Я видел и другие случаи, когда люди создавали файл с помощью touch и меняли отметку времени на нужную дату, используя date -d или date --date, как показано ниже, но опять же, эти параметры недоступны для меня с этой оболочкой.
date -d '7 days ago'
date --date '3 months 1 day ago'
В этом PDF-файле представлен полный список команд UNIX, поддерживаемых нашей версией IBM z/OS: http://publibfp.dhe.ibm.com/epubs/pdf/bpxza5c0.pdf
У кого-нибудь есть идеи, как побороть эту проблему? Мы будем очень признательны за любые советы.
Заранее спасибо!
find
(или, если уж на то пошло,date
) не зависят от того, какую оболочку вы используете. Возможно, вы могли бы установить GNU findutils на z/OS. (Вы также можете установить Bash, но, как указано выше, это не поможет решить эту проблему.) - person tripleee   schedule 26.08.2015