2016-09-15 126 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

此解決方案正常工作。謝謝! –