我准备将这个问题作为一个问题发布,但是经过一段时间的努力,我找到了解决方案。所以我想我会继续把它发布在这里,以防它帮助其他人。
我遇到了查找-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
希望这有帮助。
答案 0 :(得分:7)
正如开场文章所述,我找到的解决方案是:
$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
其中--target-directory=
也可以替换为-t