2012-07-20 44 views
3

在爲腳本我有聲明擊:如何目錄中的文件複製如果存在

eval cp "$chapter"/subsections/* $temp/subsections 

但是,我不知道居然有在「$章」 /小節/文件。因此,我得到的錯誤:

cp: cannot stat `Commissioning/subsections/*': No such file or directory 

在cp中是否有一個選項,以避免投訴(我找不到任何)?

是否有一個簡單的方法來檢查目錄中的任何文件的存在?

+0

什麼是'eval'?這是一個完全多餘的複雜情況。 – tripleee 2012-07-20 07:35:13

回答

6

這不是真的cp抱怨。當您使用通配符*時,shell會用所有匹配文件的完整列表替換它們。當沒有文件匹配時,它只是離開*,告訴cp複製名爲*的文件。

您可以使用下面的技巧,而不是:

cp -r "${chapter}"/subsections/. "${temp}"/subsections 

現在你將會被傳遞整個目錄cp,與請求遞歸複製。並且由於您通過.來引用它,因此cp將不會複製其名稱,而只是複製內容。

相關問題