我想将2个文件从当前目录移动到存档目录,并在执行此操作时重命名文件,并为日期添加前缀并更改文件扩展名。如果我删除它的移动目录部分,它下面的脚本确实有效。请参阅脚本和错误消息。存档目录的权限是777,文件也是如此。
#!/bin/bash
cdate=$(date +%Y-%m-%d)
destdir=${/home/dcaceres/load/archive}
for file in allcustomer.csv loadcustomer.csv; do
mv "$file" "$destdir/$cdate"_"$file"".ARCHIVE"
done
the error.
./archive_customer_load.sh: line 3: /home/dcaceres/load/archive: Is a directory
mv: cannot move 'allcustomer.csv' to '/2017-12-12_allcustomer.csv.ARCHIVE': Permission denied
mv: cannot move 'loadcustomer.csv' to '/2017-12-12_loadcustomer.csv.ARCHIVE': Permission denied
答案 0 :(得分:0)
更改以下行将完成工作:
destdir=${/home/dcaceres/load/archive}
为:
destdir="/home/dcaceres/load/archive"
<强>解释强>
使用变量时需要使用大括号,这并不总是必要的。在许多情况下,它很有用,例如,在使用数组或使用参数扩展时,将字符串连接到变量的值。
在您的情况下,我们只需要为变量destdir
分配string
,因此我们可以直接使用引号进行操作。