10

我正准备将其作为一个问题发布,但在摆弄了一段时间之后,我找到了解决方案。所以我想我会继续把它贴在这里,以防它帮助别人。

我在 find -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

希望这可以帮助。

4

1 回答 1

11

如开篇所述,我找到的解决方案是:

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

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

于 2012-08-21T18:06:30.443 回答