Команда date
достаточно гибка в распознавании строк, представляющих даты. Так, например:
$ date -d 'Oct 29 2018' Mon Oct 29 00:00:00 CET 2018
-d
Флаг инструктирует date
для отображения даты, данная ему в виде строки.
Вы можете добавить +FORMAT
параметр для преобразования даты, как вам нравится. Например:
$ date -d 'Oct 29 2018' '+%Y-%m-%d' 2018-10-29
Обратитесь к man date
опции, вы должны установить выходной формат.
РЕДАКТИРОВАТЬ:
Извините, я не получил вашу ссылку на -mtime
. Вы говорите о find
фильтре? Если это так, я думаю, вам нужна разница между сегодняшним днем и вашим OLDEST_DATE
, в днях.
Вы можете получить его, конвертировав даты в формат Epoch (секунды с 1970-01-01 00:00:00 UTC). Например:
$ current="$(date '+%s')" $ oldest_date_epoch="$(date -d "$OLDEST_DATE" '+%s')" $ diff_days=$(( ("$current" - "$oldest_date_epoch") / (3600 * 24) ))
Обратите внимание, что это не общее решение, так как date
не может понимать иностранные языки .