Подтвердить что ты не робот

Получить текущую дату в эпоху из оболочки Unix script

Как получить текущее значение даты в эпоху, то есть количество дней, прошедших с 1970-1-1 годов. Мне нужно решение в оболочке unix script.

4b9b3361

Ответ 1

Обновить. Ответ, ранее размещенный здесь, связан с пользовательским script, который больше не доступен, только потому, что OP указал, что date +'%s' не работает для него. Для правильных решений см. ответ UberAlex и ответ cadrian. Короче говоря:

  • В течение нескольких секунд, начиная с эпохи Unix, используйте date(1) следующим образом:

    date +'%s'
    
  • В течение нескольких дней с тех пор, как эпоха Unix разделит результат на количество секунд в день (вспомните двойные круглые скобки!):

    echo $(($(date +%s) / 60 / 60 / 24))
    

Ответ 2

Команда Unix Date будет отображаться в эпоху

команда

date +"%s"

http://unixhelp.ed.ac.uk/CGI/man-cgi?date

Изменить: Некоторые люди наблюдали, как вы просили дни, поэтому результат этой команды делится на 86 400

Ответ 3

echo $(($(date +%s) / 60 / 60 / 24))

Ответ 4

echo `date +%s`/86400 | bc

Ответ 5

В зависимости от языка, который вы используете, это будет что-то простое, например

CInt(CDate("1970-1-1") - CDate(Today()))

Как ни странно, вчера был день 40 000, если вы используете 1/1/1900 как "нулевой день", как и многие компьютерные системы.