Проблема в том, что `знаки используются для обозначения команд, вывод которых должен быть подставлен в вашу команду ... так что ваша команда на самом деле состоит из трех команд:
- "эхо" (содержится в первом наборе из 1 метки)
- «-1308741881 | bc» (содержится во втором наборе из 1 знака)
- находить . -mtime - ВЫХОД ИЗ КОМАНДЫ № 1 дата +% s ВЫХОД ИЗ КОМАНДЫ № 2
Команда # 1 ничего не выводит, а команда # 2 приводит к ошибке "Команда не найдена", поскольку -1308741881 не является допустимой командой, а затем ничего не выводит.
Затем, наконец, запускается третья команда с этими заменами и выглядит так:
find . -mtime -date
А поскольку «-дата» не является действительным временем, она также жалуется на это, говоря "недопустимое значение времени"
Основная проблема заключается в том, что вы пытаетесь использовать вложенные метки ``, которые оболочка интерпретирует как две отдельные команды.
Лучший способ выразить то, что вы хотите, это (для bash):
find . -mtime -$(echo $(date +%s-1308741881) | bc)s
И для csh:
set now=`date +%s-1308741881`; set date=`echo $now | bc`s; find . -mtime -$date
И, возможно, для других оболочек (не проверено):
NOW=`date +%s-1308741881`; DATE=`echo $NOW | bc`; find . -mtime -${DATE}s
PS Я не думаю, что это делает то, что вы ожидаете ... ваша команда date возвращает количество секунд, но -mtime ожидает ввода количества дней. Я предполагаю, что вы, вероятно, захотите изменить свою команду даты соответственно.