在以下bash
备份脚本中:
PROJECT="testPrj"
BACKUP_DIR="~/Documents/backups/"
BACKUP_FILES="./*.sh ./*.h ./*.hpp ./*.c ./*.cc ./*.cpp ./*.md ./*.txt ./BUILD"
BACKUP_TIME=_`date +%Y%m%d_%H%M`
BACKUP_FILENAME=$BACKUP_DIR$PROJECT$BACKUP_TIME.tar.bz2
mkdir -p $BACKUP_DIR
echo "Created backup directory:" $BACKUP_DIR
echo $BACKUP_FILENAME
tar -cpjf $BACKUP_FILENAME $BACKUP_FILES
这是输出:
创建备份目录:〜/ Documents / backups / 〜/文档/备份/ testPrj_20170206_1609.tar.bz2
我将压缩文件放在错误的路径中。而不是:
~/Documents/backups/
它进入:\~/Documents/backups/
此目标目录实际存在,并且位于本地路径中。
从命令行自行运行mkdir
会在正确的位置创建目录。
答案 0 :(得分:1)
~
将不会展开到您的主目录。保留它(以及以下/
)不加引号,如下所示:
BACKUP_DIR=~/"Documents/backups/"
此外,最安全的是对变量名称使用小写或混合大小写,这样您就不会意外地使用对shell或其他程序具有特殊含义的变量名称(使用$PATH
是典型示例)。 / p>