在檔案名稱中包含當前時間戳記?

在檔案名稱中包含當前時間戳記?

我必須使用手動建立大量資料庫備份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 關於指令替換:

命令替換擴展到命令的輸出。這些命令在子 shell 中執行,它們的stdout資料是取代語法擴充的內容。

基本上,date -%Y%m%d輸出20150917,我們使用反引號 ( `) 形式的命令替換來將該輸出包含在您提供的備份資料庫的命令中。我們同樣可以使用:

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

達到同樣的結果。

相關內容