Debian | Как добавить текущую дату и время к имени файла? — efim360.ru

Debian | Как добавить текущую дату и время к имени файла?

К имени файла добавьте выражение:

"`date +"%d-%m-%Y"`"

Вернёт строку вида:

24-03-2022

Мы получили через дефис (-) номер дня, номер месяца и номер года.

Конструкция (date +) указывает, что нужно сначала выполнить шаблон подстановки значения. Надо его ВЫЧИСЛИТЬ т. к. оно не готово.

Одинарные обратные кавычки (`) ограничивают само выражения для вычисления.

Двойные кавычки по краям (") будут означать конкатенацию с оставшейся частью строки имени файла.

 

Пример использования

Команда:

zip -r /tmp/z-"`date +"%d-%m-%Y"`".zip /tmp/test

Данная команда создаст zip-архив при помощи программы zip.

zip-архив будет создан в директории "/tmp".

К строке "z-" будет добавлена вычисляемая строка "24-03-2022". И в самом конце будет добавлена ".zip".

В итоге мы получим полное имя файла:

z-24-03-2022.zip

Внимание! Эта дата актуальна момент написания статьи. У вас она будет другой.

 

Если нужно получить СУПЕР-уникальную дату и время:

"`date +"%Y-%m-%d_%H:%M:%S_%N"`"
"`date +"%Y-%m-%d_%H:%M:%S_%N"`"
"`date +"%Y-%m-%d_%H:%M:%S_%N"`"

Выведет временную дату с наносекундами:

2022-03-24_16:46:05_627661888
2022-03-24_16:46:05_748069911
2022-03-24_16:46:05_876347123

Очень полезно, если вы создаёте программно очень много файлов в секунду. Такой способ гарантирует уникальность имён файлов, во избежании конфликтов.

 

Тестирование

Чтобы потренироваться в выводах дат и времён рекомендую использовать программу echo:

echo `date +"%d-%m-%Y"`

Она просто выводит в консоль строку, ничего не делая при этом. echo можно выводить без двойных кавычек по краям.

 

 

Информация

Этот способ называется "подстановка команд".

Подстановка команд - это отдельная операция с выделенным синтаксисом, которая выполняет как команду, так и вывод её результатов в переменную для последующего использования.

 

Информационные ссылки

Википедия на русском - https://ru.wikipedia.org/wiki/Date

Поделись записью