2012-07-20 49 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将不会复制其名称,而只是复制内容。

相关问题