3

在脚本中我有声明

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

但是,我不确定“$chapter”/subsections/ 中是否真的有文件。结果我得到错误:

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

cp 中是否有避免投诉的选项(我找不到任何投诉)?

有没有一种简单的方法来检查目录中是否存在任何文件?

4

1 回答 1

7

这并不是真正的cp抱怨。当您使用通配符*时,shell 会将它们替换为所有匹配文件的完整列表。当没有文件匹配时,它只是离开*,告诉cp复制名为*.

您可以改用以下技巧:

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

现在您将把整个目录传递给cp,并请求递归地复制它。并且由于您通过 引用它.cp因此不会复制其名称,而只会复制其内容。

于 2012-07-20T07:25:51.180 回答