问题
I was getting ready to post this as a question, but after fiddling around with it a little longer, I found the solution. So I thought I would go ahead and post it here in case it helps someone else.
I had trouble with find -exec cmd +. I got the error:
$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR +
find: missing argument to `-exec'
It worked if I used
$ find ./ -name "*JIM*" -exec cp {} $TARGET_DIR \;
But I did't want to use that because it forks a new process for every file found.
And it worked if I used
$ find ./ -name "*JIM*" -exec ls {} +
It lists all of the files that I want to copy. But -exec cp {} $TARGET_DIR +
didn't work.
The solution I found is:
$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
Where --target-directory=
could also be replaced with -t
Hope this helps.
回答1:
As mentioned in the opening post, the solution I found is:
$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
Where --target-directory=
could also be replaced with -t
来源:https://stackoverflow.com/questions/12060557/solution-to-error-find-missing-argument-to-exec-with-find-exec-cp-target