シェル変数が機能しませんか?

シェル変数が機能しませんか?

$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: 統計不能: ファイルまたはディレクトリなし tar: 前のエラーのため失敗し、終了しました。

mysqlダンプでは動作しているようですが、最後のコマンドで使用すると失敗します。

答え1

$DATEトークン化が進行中の拡張機能を引用する必要があるため、tar拡張されると、1つではなく2つの引数が渡されます$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" ./

バラよりhttp://mywiki.wooledge.org/Quotes

関連情報