Включить текущую метку времени в имя файла?

Я должен создать много резервных копий БД вручную, используя mysqldumpНапример, вот так:

mysqldump -uroot -proot my-db > my-db.sql

Мне интересно, есть ли простой способ включить текущую дату или метку времени в имя файла, чтобы файл выглядел так: my-db-20150917.sql (или другой формат в порядке, даже отметка времени).

1 ответ

Решение

Как я могу пометить даты своими именами файлов?

Чтобы включить текущее время / дату в имя файла, используйте комбинацию dateи подстановка команд:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d`.sql

man страница дляdate объясняет другие варианты, которые вы можете использовать; но в этом контексте вас также может заинтересовать включение времени:

mysqldump -uroot -proot my-db > my-db-`date +%Y%m%d-%H%M`.sql

Подождите, что это за "подстановка команд"?

Цитата из bash hackers wiki о подстановке команд:

Подстановка команд распространяется на вывод команд. Эти команды выполняются в подоболочке, и их stdout Данные - это то, что расширяет синтаксис замещения.

В принципе, date -%Y%m%d выходы 20150917и мы используем обратный тик (`) форма подстановки команд, чтобы включить эти выходные данные в команду, которую вы указали для резервного копирования базы данных. Мы могли бы также использовать:

mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql

добиться того же результата.

Другие вопросы по тегам