Введение
Команда date
отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в различных форматах и расчета будущих и прошлых дат.
В этом уроке мы рассмотрим основы данной команды.
Использование команды даты Linux
Синтаксис команды date
следующий:
date [OPTION]... [+FORMAT]
Чтобы отобразить текущее системное время и дату с использованием форматирования по умолчанию, вызовите команду без параметров:
date
Вывод будет включать день недели, месяц, день месяца, время, часовой пояс и год:
Sat Jun 3 12:21:45 CEST 2019
Параметры форматирования даты
Вывод date
может быть отформатирован с помощью последовательности символов управления форматом, которым предшествует знак +
. Элементы управления форматом начинаются с символа %
и заменяются их значениями.
date +"Year: %Y, Month: %m, Day: %d"
Символ %Y
будет заменен на год, %m
на месяц и %d
на день месяца:
Year: 2019, Month: 05, Day: 03
Вот еще один пример:
date "+DATE: %D%nTIME: %T"
DATE: 05/03/19
TIME: 02:32:12
Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:
%a
- Сокращенное название дня недели Locale (например, Mon)%A
— полное сокращенное название дня недели (например, понедельник)%b
- сокращенное название месяца Locale (например, Jan)%B
- короткое название длинного месяца Locale (например, январь)%d
- День месяца (например, 01)%H
- время (00..23)%I
- Время (01..12)%j
- День года (001..366)%m
- Месяц (01..12)%M
- минуты (00..59)%S
- секунда (00..60)%u
- День недели (1..7)%Y
— полный год (например, 2019 г.)
Чтобы получить полный список всех параметров форматирования, запустите date --help
или man date
в терминале.
Опция -d
позволяет торговать в определенную дату. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:
date -d "2010-02-07 12:10:53"
Sun Feb 7 12:10:53 CET 2010
Использование пользовательского форматирования:
date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974
Строка даты также может принимать такие значения, как «завтра», «пятница», «прошлая пятница», «следующая пятница», «следующий месяц», «следующая неделя» и т. д.
date -d "last week"
Sat May 22 10:06:22 CEST 2019
Вы также можете использовать опцию строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время для 6:30 следующего понедельника на восточном побережье Австралии, введите:
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun 22 10:06:22 CEST 2019
Заменить часовой пояс
Команда date
использует системный часовой пояс по умолчанию. Чтобы использовать другой часовой пояс, задайте для переменной среды TZ
нужный часовой пояс.
Например, чтобы показать время в Мельбурне, Австралия, введите:
TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019
Чтобы вывести список всех доступных часовых поясов, вы можете перечислить файлы в каталоге /usr/share/zoneinfo
или использовать команду timedatectl list-timezones
.
Конвертер эпох
Команда date
может использоваться как конвертер эпох. Эпоха или отметка времени Unix — это количество секунд, прошедших с 1 января 1970 года до 00:00:00 UTC.
Чтобы напечатать количество секунд от эпохи до текущего дня, используйте элемент управления форматом %s
:
date +%s
1575037004
Чтобы преобразовать секунды из эпохи в сегодняшний день, установите секунды как строку даты с префиксом @
:
date -d @1575037004
ven 29 nov 2019, 15:16:44, CET
Используйте дату с другими командами
Команда date
чаще всего используется для создания имен файлов, содержащих текущее время и дату.
Следующая команда создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Вы также можете использовать команду date
в сценариях оболочки. В следующем примере мы назначаем вывод date
переменной date_now
:
date_now=$(date "+%F-%H-%M-%S")
echo $date_now
2019-06-01-15-02-27
Просмотр времени последнего изменения файла
Команда date
с параметром -r
отображает время последнего изменения файла. Например:
date -r /etc/hosts
mar 19 nov 2019, 10:12:12, CET
Если вы хотите изменить файл метки времени, используйте команду touch
.
Установите системное время и дату
Установка системного времени и даты вручную с помощью команды date
обычно не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с помощью служб ntp
или systemd-timesyncd
.
Однако, если вы хотите вручную установить системные часы, вы можете использовать --set=
. Например, если вы хотите установить дату и время на 17:30 1 июня 2019 года, введите:
date --set="20190601 17:30"
Вывод
К настоящему времени вы должны хорошо понимать, как использовать команду даты в Linux.