Команда date в Linux

Головне властивість утиліт GNU / Linux - робити щось одне, але ефективно. Яскравий приклад - команда date Linux, що працює з датою і часом. З її допомогою можна отримувати будь-яку дату в різноманітному форматі, в тому числі і розраховувати минуле і майбутнє час. Привілейовані користувачі можуть перезаписувати системний час, використовуючи її.

Утиліта встановлена ​​у всіх дистрибутивах GNU / Linux. У цій статті будуть розглянуті можливості date і способи застосування цієї команди.

Зміст статті:

Програма може виконуватися від імені звичайного користувача. Стандартний синтаксис команди (квадратні дужки позначають необов'язкове наявність):

date [ОПЦИИ] ... [+ ФОРМАТ]

Нижче наведено таблицю з часто вживаними опціями для date.

Опція Довгий варіант Значення -d STRING --date = STRING Висновок дати по зазначеному рядку (наприклад 'yesterday', 'tomorrow', 'last monday'). -I --iso-8601 [= FMT] Висновок дати в форматі ISO 8601. FMT за замовчуванням містить 'date'. Також може містити 'hourse', 'minutes', 'seconds', 'ns' для відображення відповідних значень і часовий пояс щодо UTC поруч з датою. --rfc-3339 = FMT Висновок дати в форматі RFC 3339. FMT за замовчуванням містить 'date'. Також може містити 'seconds' і 'ns' для відображення секунд або наносекунд. -r FILE --reference = FILE Висновок дати останньої модифікації зазначеного файлу в форматі за замовчуванням. -u --utc Висновок UTC-дати

Аргумент ФОРМАТ відповідає за форматування виведення дати. Для його вказівки необхідно поставити знак "+" і написати потрібну маску. Найбільш популярні формати:

Формат Значення %% Знак відсотка% a День тижні поточної локалі в короткій формі ( "Чтв")% A День тижні поточної локалі в довгій формі ( "Четвер")% b Місяць року поточної локалі в короткій формі в родовому відмінку ( "Січень" )% B Місяць року поточної локалі в довгій формі в родовому відмінку ( "січня")% c Дата та час поточної локалі без вказівки часового поясу% с Перші дві цифри поточного року% d Числовий день місяця з провідним нулем% D Дата в форматі% m /% d /% y% e День місяця; аналог% _d% F Дата в форматі% Y-% m-% d% h Аналог% b% H Годинники (00..23)% I Годинники (01..12)% j День року (001..366)% m Місяць (01..12)% M Хвилини (00..59)% n Новий рядок% q Квартал року% S Секунди (00..59)% t Знак табуляції% T Час в форматі% H:% M:% S% u Числовий день тижня; 1 - Понеділок% x Дата в локальному форматі% X Час в локальному форматі% Z Абревіатура тимчасової зони

Введемо команду без параметрів.

date

Буде відображена поточна дата і час відповідно до настройками локалі системи.

Команда date без параметрів за замовчуванням застосовує маску% a% b% d% X% Z. Оскільки всі формати повинні бути передані як один параметр (через принципу обробки даних командним інтерпретатором Bash), прогалини між ними необхідно екранувати зворотним слешем (\) або взяти в лапки.

Особливу увагу слід приділити параметру -d (--date). Його функціональність не дуже очевидна, але при цьому найбільш обширна.

Приклад 1. Обчислення дати по числу секунд, що пройшли з 1 січня 1970 року.

date --date = '@ 1234567890'

Приклад 2. Обчислення дати і часу наступного понеділка при вказівці часового поясу Нью-Йорка о 03:00.

date --date = 'TZ = "America / New_York" 03:00 next mon'

Зверніть увагу: вказувати назву дня тижня або місяця можна в будь-якому регістрі, в короткій або довгій формі. Параметри next і last позначають наступний і минулий, відповідно, найближчими днями тижня.

Приклад 3. Якщо поточний день місяця - останній, сформувати звіт про зайнятість дискового простору кореневого і домашнього каталогу в файл report.

#! / Bin / bash
if [[$ (date --date = 'next day' +% d) = '01']]; then
df -h / / home> report

Такий скрипт можна використовувати для автоматизації роботи за допомогою демона crontab або anacron.

Команда date Linux є ефективним інструментом роботи з датою і часом, з широкою можливістю їх розрахунку для минулих або майбутніх показників. Також вона застосовується в написанні сценаріїв в командному інтерпретаторі Bash.

Оцініть статтю: