2016-09-15 152 views
0

我尝试使用bash shell脚本将文件从位置(/ home/ppaa/workspace/partial/medium)复制到另一个位置(/ home/ppaa/workspace/complete)在Linux中。在Linux shell bash脚本中复制文件时出错

这是我的代码:

#!/bin/bash -u 

MY_BASE_FOLDER='/home/ppaa/workspace/' 
MY_TARGET_FOLDER='/home/ppaa/workspace/complete/' 
cp $MY_BASE_FOLDER'partial/medium/*.*' $MY_TARGET_FOLDER 
return=$? 
echo "return: $return" 

的文件夹存在,文件复制,但返回变量的值是1的哪些错误?

+0

'cp'在成功时返回错误代码0,在失败时返回1。 – Inian

+0

我知道,但副本是成功的。 –

+0

我倾向于猜测该副本是*不*(完全)成功。如果无法复制任何*指定文件,'cp'将以非零状态退出。这可能会发生任何原因,但一个合理的可能原因是您的源glob匹配一个或多个目录。非递归'cp'不会复制目录,如果要求这样做,将会以状态1退出。但它仍然会复制文件。 –

回答

2

不复制文件。 cp是最有可能给你一个错误,如:

cp: cannot stat ‘/home/ppaa/workspace/partial/medium/*.*’: No such file or directory 

这是因为水珠(如*.*)不加引号扩大。相反,使用:

cp "$MY_BASE_FOLDER/partial/medium"/*.* "$MY_TARGET_FOLDER" 
+0

此解决方案正常工作。谢谢! –