使用find -exec cp {} TARGET_DIR +解决错误'find:缺少-exec参数'

时间:2012-08-21 18:06:30

标签: bash find arguments exec cp

我准备将这个问题作为一个问题发布,但是经过一段时间的努力,我找到了解决方案。所以我想我会继续把它发布在这里,以防它帮助其他人。

我遇到了查找-exec cmd +的问题。我收到了错误:

$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR +
find: missing argument to `-exec'

如果我使用

,它就有效
$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR \;

但我不想使用它,因为它为每个找到的文件分配了一个新进程。

如果我使用

,它就有效
$ find ./ -name "*JIM*" -exec ls {} +

它列出了我要复制的所有文件。但是-exec cp {} $TARGET_DIR +没有用。

我找到的解决方案是:

$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +

其中--target-directory=也可以替换为-t

希望这有帮助。

1 个答案:

答案 0 :(得分:7)

正如开场文章所述,我找到的解决方案是:

$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +

其中--target-directory=也可以替换为-t