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

Rus*_*mur 6 bash arguments exec find cp

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

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

$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR +
find: missing argument to `-exec'
Run Code Online (Sandbox Code Playgroud)

如果我用的话,它有效

$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR \;
Run Code Online (Sandbox Code Playgroud)

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

如果我用的话它会起作用

$ find ./ -name "*JIM*" -exec ls {} +
Run Code Online (Sandbox Code Playgroud)

它列出了我要复制的所有文件.但-exec cp {} $TARGET_DIR +没有奏效.

我找到的解决方案是:

$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
Run Code Online (Sandbox Code Playgroud)

哪里--target-directory=也可以替换-t

希望这可以帮助.

Rus*_*mur 8

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

$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
Run Code Online (Sandbox Code Playgroud)

哪里--target-directory=也可以替换-t