使用 bash 在错误的路径中写入文件
Writing files in the wrong path with bash
在下面的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
这是输出:
Created backup directory: ~/Documents/backups/
~/Documents/backups/testPrj_20170206_1609.tar.bz2
我在错误的路径中获取了压缩文件。而不是:
~/Documents/backups/
它进入:\~/Documents/backups/
此目标目录有效存在,并且在本地路径中。
运行 mkdir
从命令行自行在正确的位置创建目录。
~
在引号中时不会扩展到您的主目录。不加引号(以及后面的 /
),像这样:
BACKUP_DIR=~/"Documents/backups/"
此外,变量名使用小写或混合大小写是最安全的,这样您就不会不小心使用对 shell 或其他程序有特殊意义的变量名(使用 $PATH
是经典例子)。
在下面的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
这是输出:
Created backup directory: ~/Documents/backups/ ~/Documents/backups/testPrj_20170206_1609.tar.bz2
我在错误的路径中获取了压缩文件。而不是:
~/Documents/backups/
它进入:\~/Documents/backups/
此目标目录有效存在,并且在本地路径中。
运行 mkdir
从命令行自行在正确的位置创建目录。
~
在引号中时不会扩展到您的主目录。不加引号(以及后面的 /
),像这样:
BACKUP_DIR=~/"Documents/backups/"
此外,变量名使用小写或混合大小写是最安全的,这样您就不会不小心使用对 shell 或其他程序有特殊意义的变量名(使用 $PATH
是经典例子)。