我试图将日期存储在变量 ( $DATE
) 中,以便稍后使用它,但它似乎不起作用。看出什么问题了吗?
DATE=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/$DATE.sql
cd /var/www && sudo tar -czf ~/www_backups/$DATE.tar ./
更新 错误信息是:
get:tar: 20\:41.tar: 无法 stat: 没有这样的文件或目录 tar: 由于先前的错误而以失败状态退出
它似乎适用于 mysql 转储,但在最后一个命令中使用它时失败。
答案1
您需要引用您的扩展$DATE
,它正在经历分词,因此tar
一旦扩展,就会传递两个参数而不是一个$DATE
(重定向也是如此)。这是一个固定版本(已$DATE
更改为$date
; 按照惯例,只有环境变量应为全大写):
date=$(date +"%Y-%m-%d %R")
sudo mysqldump -u root -pnotgivingyoumypassword --all-databases > ~/mysql_backups/"$date.sql"
cd /var/www && sudo tar -czf ~/www_backups/"$date.tar" ./