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
希望这可以帮助.
正如开场文章所述,我找到的解决方案是:
$ find ./ -name "*JIM*" -exec cp --target-directory=$TARGET_DIR {} +
Run Code Online (Sandbox Code Playgroud)
哪里--target-directory=也可以替换-t