linux递归复制指定的文件不起作用

时间:2016-05-04 03:38:13

标签: regex linux macos terminal

我想将目录数据中以字母开头的所有文件递归复制到目录测试。所以我写了这个:

find data -type f -exec grep '^[a-z]' {} \; -exec cp -f {} ./test \;

但是,它也匹配其他文件。

代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

您的命令不会对文件名执行grep,而是这些文件的内容

你说:

  

复制所有以目录

中的字母开头的文件

将使用find命令匹配需要-name选项的文件名。例如,

find data -type f -name '[a-z]*'

使用-exec选项查找,而不是在grep '^[a-z]' {}在数据目录中找到的每个文件上执行提供的命令(find),因为没有文件名匹配子句(-name)。

您可能想要的命令是:

find data -type f -name '[a-z]*' -exec cp -f {} ./test \;