Виртуальная энциклопедия Linux по-русски   Рейтинг@Mail.ru
Главная | Каталог ПО | Каталог ссылок | Библиотека | Е-книги | Форум | Авторское | О сайте | Карта сайта
  Вход для пользователей  
Регистрация
Забыли пароль?
Полезные ссылки
 

UnixForum

Книги по Linux
(с отзывами читателей)
 Use OpenOffice.org



 

Библиотека сайта или "Мой Linux Documentation Project"

  Фокусы с датами

Peter Leung, "Командная строка: маленькие хитрости от Linux Commando"

Фокусы с датами

Оригинал: Fun with Date Arithmetic
Автор: Peter Leung
Дата: 14 ноября 2009
Свободный перевод: Алексей Дмитриев
Дата перевода: 21 июля 2010

Все знают команду date, которая сообщает нам текущее время и дату. Изредка ею пользуются, чтобы скорректировать системное время. Это бывает все реже, так как появился сервис ntp, автоматически синхронизирующий системное время с сервером точного времени по вашему выбору.

Сегодня в ходу многочисленные реализации команды date. В этой статье говорится только о команде date из пакета GNU coreutils.

По умолчанию команда сообщает текущую дату и время.

$ date
 Sat Nov 14 17:54:51 PST 2009

Команда позволяет вам также производить основные вычисления будущих или прошедших дат. Для этого нужно применить опцию -d, а в качестве параметра указать желаемый отрезок времени вперед или назад:

$ date -d -30days
 Thu Oct 15 18:54:56 PDT 2009

Сколько раз вы вычисляли, какой был день недели и число N дней назад? Только вчера мне необходимо было вспомнить дату 30 дневной давности, чтобы найти нужный лог.

Для вычисления будущей даты вместо минуса ставим плюс:

$ date -d +30days
 Thu Oct 15 18:54:56 PDT 2009

Кроме дней (days) единицами могут служить годы (years), месяцы (months), минуты (minutes) и секунды (seconds).

$ date -d +2months
 Thu Jan 14 18:48:43 PST 2010

Их можно также комбинировать:

$ date -d +2months17days
 Sun Jan 31 18:49:45 PST 2010

Все вычисления мы производили относительно настоящего момента. А как насчет отсчета десяти дней от завтрашнего дня? Легко:

$ date -d tomorrow+10days
 Wed Nov 25 18:52:03 PST 2009

Или назад от вчерашнего:

$ date -d yesterday-10days
 Tue Nov  3 18:53:07 PST 2009

В качестве точки отсчета можно указать любой день, например, 21 января 2010:

$ date -d '2010-01-21 + 2 weeks 3 days'
 Sun Feb  7 00:00:00 PST 2010

И, наконец, команда распознает дни недели (Понедельник, Вторник и так далее) и два ключевых слова: "last" (прошлый) и "next" (следующий). Вот пример:

$ date -d 'next tuesday + 1 day'
Wed Nov 18 00:00:00 PST 2009

Надеюсь, вы получили удовольствие от знакомства с этой разносторонней командой.


Средняя оценка 5 при 1 голосовавших
Вы сможете оценить статью и оставить комментарий, если войдете или зарегистрируетесь.
Только зарегистрированные пользователи могут оценивать и комментировать статьи.

Сохранить ссылку на статью в вашем любимом сервисе закладок: Добавить страницу к Мистеру Вонгу     Забобрить эту страницу!   +МоёМесто.ru   LinkStore     Bookmark this on Delicious  

 
Главная | Каталог ПО | Каталог ссылок | Библиотека | Е-книги | Форум | Авторское | О сайте | Карта сайта
Rambler's Top100
Service   (C) В.А.Костромин, 1999 - 2010 г. Пишите на kos at rus-linux dot net. liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня Рейтинг@Mail.ru