1. ホーム
  2. bash

[解決済み] find -exec cp {} でエラー 'find: missing argument to -exec' が発生した場合の解決策。TARGET_DIR + [閉店]。

2022-02-03 01:30:12

質問

質問として投稿する準備をしていたのですが、もう少しいじっていたら、解決策が見つかりました。 それで、他の誰かの役に立つかもしれないので、ここに投稿しようと思います。

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

お役に立てれば幸いです。

解決方法は?

冒頭の記事にあるように、私が見つけた解決策は

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

ここで --target-directory= に置き換えることもできます。 -t