Как использовать команду Date в Linux

12 set 2022 3 min di lettura
Как использовать команду Date в Linux
Indice dei contenuti

Введение

Команда 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.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.