我的旧备份脚本具有以下行,以使用备份日期重命名备份目录:
today=`date '+%Y-%m-%d'`
mv /media/DATA/Backup\ yzT\ * /media/DATA/Backup\ yzT\ $today
它没有任何问题。现在我一直在编辑脚本,添加更多目录到备份我想为备份目录声明一个变量:
today=`date '+%Y-%m-%d'`
BACKUPDIR=/media/DATA/Backup\ yzT\ $today
mv /media/DATA/Backup\ yzT\ * $BACKUPDIR
这样,如果以后我改变备份目录,我只需要编辑这个变量。
然而,mv
失败了,我不知道为什么。如果它只是取今天的$而不是整个路径,因为输出是:
mv: target ‘2015-03-13’ is not a directory
$ BACKUPDIR的回显显示整个路径。
答案 0 :(得分:1)
不是更好地转义空格,而是引用变量:
today=$(date '+%Y-%m-%d')
BACKUPDIR="/media/DATA/Backup yzT $today"
mv /media/DATA/Backup\ yzT\ * "$BACKUPDIR"
否则,shell会在空格之前将字符串解释为另一个参数,并在空格之后将日期部分解释为另一个参数。