在脚本中我有声明
eval cp "$chapter"/subsections/* $temp/subsections
但是,我不确定“$ chapter”/ subsections /中是否存在实际文件。结果我得到了错误:
cp: cannot stat `Commissioning/subsections/*': No such file or directory
cp中是否有选项可以避免投诉(我找不到任何投诉)?
是否有一种简单的方法可以检查目录中是否存在任何文件?
答案 0 :(得分:7)
真的不是cp
抱怨。当您使用*
之类的通配符时,shell会将它们替换为所有匹配文件的完整列表。当没有文件匹配时,它会离开*
,告诉cp
复制名为*
的文件。
您可以改用以下技巧:
cp -r "${chapter}"/subsections/. "${temp}"/subsections
现在,您将整个目录传递给cp
,并请求递归复制它。由于您是通过.
引用它,cp
不会复制其名称,只会复制内容。