tgoop.com/srv_admin/2430
Last Update:
Давно ничего не было на тему работы в bash с использованием консольных программ. Решил оживить рубрику и рассказать про различные варианты отображения времени с помощью утилиты date. Постоянно приходится её использовать в скриптах. В основном при создании бэкапов, чтобы задавать удобные для восприятия названия файлов или директорий.
Если просто ввести date в терминале, то вы увидите текущее время, дату и часовой пояс. В таком виде это чисто информационное сообщение. # date
Mon Dec 15 15:09:40 MSK 2024
Если бэкап выполняется раз в сутки, то информацию, связанную с изменениями за эти сутки, я обычно сохраняю в директории со следующим именем:# date +%F
2024-12-15
Год-месяц-день. Вывод этой команды аналогичен вот этой:# date +%Y-%m-%d
Соответственно, если вы хотите получить только год и месяц, используйте:# date +%Y-%m
2024-12
Похожий вывод делает команда:# date +%x
15/12/2024
Только вместо тире используются наклонные линии и дата развёрнута в другую сторону. Для глаз более наглядно, но я стараюсь избегать таких символов в путях. Иногда бывают проблемы.
Если хотите получить удобочитаемую человеком маску, то подойдёт вот такая:# date +'%d-%b-%Y-%H:%M:%S'
15-Dec-2024-15:15:28
Дата и время хорошо воспринимаются на глаз, но неудобно, если будет использоваться сортировка по имени. В этом случае имеет смысл хотя бы год поставить вперёд. # date +'%Y-%b-%d-%H:%M:%S'
2024-Dec-15-15:17:12
Обычно мне хватает показанных выше масок, которые комбинируются в разном порядке и разделяются различными символами - тире, пробелами, двоеточием или наклонными линиями.
Все возможные маски подробно описаны в документации, которую можно почитать в man. Так что вы легко сможете собрать то, что подойдёт в каждом конкретном случае. К менее популярным, но всё равно иногда нужным, можно отнести:
◽ %y
- показать только две последние цифры года
◽ %j
- порядковый номер дня года, пригодится даже не в скриптах, а просто, чтобы быстро узнать, какой сейчас день по счёту
◽ %U
- текущая неделя года, тоже скорее для информации пригодится, чтобы быстро узнать, какая сейчас неделя, этими данными постоянно финансисты и бухгалтера оперируют
С помощью следующей команды можно изменить дату с формата unixtime в обычный. Это быстрее, чем гуглить онлайн конвертор:# date --date @1734265955
Sun Dec 15 15:32:35 MSK 2024
И в обратную сторону# date -d "Dec 15 2024 15:32:35" +%s
1734265955
#bash
BY ServerAdmin.ru
Share with your friend now:
tgoop.com/srv_admin/2430