我有一个shell脚本,我试图每隔几天运行一次复制.sql数据库文件并将它们移动到一个指定的文件夹中,后面跟/ $ now / . 该脚本执行完美,但我得到一个cp:无法创建常规文件'/ path / to / dir / $ now /':没有这样的文件或目录 .
我知道这些文件夹是存在的,因为当我'ls'目录时它会出现 .
我的所有权限都是可执行和可写的 . 这一直困扰我大约一个星期,我只是不能指责它 .
这是我的代码:
#!/bin/bash
BACKUP_DIR="/backups/mysql/"
FILE_DIR=/dbase/files/
now=$(date +"%Y_%m_%d")
# setting the input field seperator to newline
IFS=$'\n'
# find db backups and loop over
for file in $(find ${FILE_DIR} -maxdepth 1 -name "*.sql" -type f -exec basename {} \;); do
# create backup directory:
mkdir -p "${BACKUP_DIR}${file%.sql}/${now}"
# copy file over
cp "${FILE_DIR}${file}" "${BACUP_DIR}${file%.sql}/${now}/"
done
提前致谢!
更新:
我得到的错误:
+ mkdir -pv /backups/mysql/health/2014_12_04
+ cp /dbase/files/health.sql health/2014_12_04/
cp: cannot create regular file 'health/2014_12_04/': No such file or directory
这已发生在已创建的所有9个目录中
1 回答
错误是一个错字 . 我错过了cp线上$ BACKUP_DIR中的'K' . 这是正确的代码: