【发布时间】:2013-12-17 21:53:21
【问题描述】:
我正在尝试完全备份并将所有文件从一个目录复制到另一个目录
#!/bin/bash
#getting files from this directory
PROJECTDIRECTORY=/../../Project3
#Copied to this directory
FILEBACKUPLOCATION= /../.../FMonday
for FILENAME in $PROJECTDIRECTORY/*
do
cp $FILENAME $FILEBACKUPLOCATION
done
但我不断收到此错误
./fullbackup: line 6: /../../FMonday: Is a directory
cp: missing destination file operand after
【问题讨论】:
-
你试过等号后面没有空格吗:FILEBACKUPLOCATION=/../.../FMonday
-
/../../Project3 和 /Project3 不一样吗?此外,...具有误导性。无论如何,在目标路径的末尾添加斜杠。
-
对变量进行双引号也是明智之举,以避免因路径中的空格字符等问题引起的错误。
-
我认为将目录命名为
...会导致可能出现的错误,请注意...在某些情况下(Novel NetWare、Windows 95、Golang)具有特殊含义。 --- 在变量引用周围使用双引号也可以更好地表明变量为空或不存在,并且在这种情况下可以更好地处理可能的错误(可以覆盖文件的典型示例:cp path/* $nonexistent_var)。