在Linux shell bash脚本中复制文件时出错

在Linux shell bash脚本中复制文件时出错,linux,bash,Linux,Bash,我正在尝试在Linux中使用bashshell脚本将文件从一个位置(/home/ppaa/workspace/partial/medium)复制到另一个位置(/home/ppaa/workspace/complete) 这是我的代码: #!/bin/bash -u MY_BASE_FOLDER='/home/ppaa/workspace/' MY_TARGET_FOLDER='/home/ppaa/workspace/complete/' cp $MY_BASE_FOLDER'partial/

我正在尝试在Linux中使用bashshell脚本将文件从一个位置(/home/ppaa/workspace/partial/medium)复制到另一个位置(/home/ppaa/workspace/complete)

这是我的代码:

#!/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。怎么了?

文件没有被复制
cp
很可能会给您带来如下错误:

cp: cannot stat ‘/home/ppaa/workspace/partial/medium/*.*’: No such file or directory
这是因为glob(如
*.
)没有用引号展开。相反,请使用:

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

这些文件没有被复制
cp
很可能会给您带来如下错误:

cp: cannot stat ‘/home/ppaa/workspace/partial/medium/*.*’: No such file or directory
这是因为glob(如
*.
)没有用引号展开。相反,请使用:

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

cp
成功时返回错误代码0,失败时返回错误代码1。我知道,但复制成功。我倾向于猜测复制没有(完全)成功<如果无法复制任何指定文件,则代码>cp将以非零状态退出。发生这种情况的原因有很多,但有一个合理的可能原因是您的源glob与一个或多个目录相匹配。非递归
cp
将不会复制目录,如果请求,将以状态1退出。但是,它仍将复制它可以复制的文件。请同意上述内容。只是为了确认一点未提及的信息。。。是否报告了任何错误消息,即
cp:none这样的消息:not found
。或者您是否正在将std err重定向到您没有显示给我们的某个地方?i、 e.
。。。。2> /dev/null
。祝你好运。尝试运行“cp--verbose”?
cp
成功时返回错误代码0,失败时返回错误代码1。我知道,但复制成功。我倾向于猜测复制没有(完全)成功<如果无法复制任何指定文件,则代码>cp将以非零状态退出。发生这种情况的原因有很多,但有一个合理的可能原因是您的源glob与一个或多个目录相匹配。非递归
cp
将不会复制目录,如果请求,将以状态1退出。但是,它仍将复制它可以复制的文件。请同意上述内容。只是为了确认一点未提及的信息。。。是否报告了任何错误消息,即
cp:none这样的消息:not found
。或者您是否正在将std err重定向到您没有显示给我们的某个地方?i、 e.
。。。。2> /dev/null
。祝你好运。试过运行“cp--verbose”?