При написании Bash сценариев иногда возникает необходимость включать в имена файлов информацию о текущей дате или метке времени, особенно когда файлы создаются регулярно, например, ежемесячно/ежедневно/ежечасно, для резервного копирования создания логов и других целей.
Инструмент date командной строки linux позволяет форматировать отображение текущего времени по своему усмотрению.
Синтаксис команды date выглядит следующим образом:
1 | date +"FORMAT" |
Включить текущее время с точностью до секунды:
1 2 3 | now=$(date+"%Y-%m-%d-%S") filename="log_name.$now.log" # example: log_name.2024-02-16-39.log |
Включить текущую метку времени с точностью до наносекунды:
1 2 3 | now=$(date +"%Y.%m.%d.%S.%N") filename="log_name.$now.log" # example: log_name.2024.02.16.47.169617000.log |
Включить текущую временную метку (т.е. количество секунд, прошедших с 1970-1-1):
1 2 3 | now=$(date +"%s") filename="log_name.$now.log" # example : log_name.1644992228.log |
Наиболее распространенные символы форматирования для команды data:
- %Y - Год (например, 2022)
- %m - Месяц (01-12)
- %B - Длинное название месяца (например, November)
- %b - Краткое название месяца (например, Nov)
- %d - День месяца (например, 01)
- %j - День года (001-366)
- %u - День недели (1-7)
- %A - Полное название дня недели (например, Friday)
- %a - Краткое название дня недели (например, Fri)
- %H - Час (00-23)
- %I - Час (01-12)
- %M - Минута (00-59)
- %S - секунда (00-60)