2015-03-13 105 views
1

我的舊備份腳本有以下線,或與備份的日期重命名備份目錄:bash腳本未能與日期來重命名文件夾

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失敗,我不知道why.It的一樣,如果它僅僅是服用,而不是整個路徑$今天,因爲輸出是:

mv: target ‘2015-03-13’ is not a directory

回聲$ BACKUPDIR顯示整個路徑。

回答

1

而是逃逸空間的更好的你引用變量:

today=$(date '+%Y-%m-%d') 
BACKUPDIR="/media/DATA/Backup yzT $today" 
mv /media/DATA/Backup\ yzT\ * "$BACKUPDIR" 

否則外殼解釋串空間之前的空間後,不同的觀點和日期部分不同的觀點。

+1

我做了什麼錯誤xD。我也嘗試了雙引號,但是當我這樣做時忘了刪除'\'... xD – yzT 2015-03-13 14:42:43