Como posso datestamp meus nomes de arquivos?
Para incluir a hora / data atual em um nome de arquivo, use uma combinação de date
e substituição de comando:
mysqldump -uroot -proot my-db > my-db-'date +%Y%m%d'.sql
A man
página para date
explica as outras opções que você pode usar; mas neste contexto você também pode estar interessado em incluir o tempo:
mysqldump -uroot -proot my-db > my-db-'date +%Y%m%d-%H%M'.sql
Espere, o que é isso 'substituição de comando'?
Citação do bash hackers wiki na substituição de comandos :
The command substitution expands to the output of commands. These commands are executed in a subshell, and their
stdout
data is what the substitution syntax expands to.
Basicamente, date -%Y%m%d
outputs 20150917
e usamos a forma backtick ( '
) de substituição de comando para incluir essa saída no comando fornecido para fazer backup do banco de dados. Nós poderíamos igualmente ter usado:
mysqldump -uroot -proot my-db > my-db-$(date +%Y%m%d).sql
para alcançar o mesmo resultado.