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

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