GNU/Linux >> Linux の 問題 >  >> Linux

Findが「-execCp{}Dir +」を受け入れないのはなぜですか?

dir1というディレクトリがあります これには、名前が.jpgで終わる多くのファイルが含まれています または.png 。すべての.pngをコピーしたい dir2へのファイル 空です。

このコマンドは機能します:

find dir1 -name '*.png' -exec cp {} dir2 ;

ただし、このコマンドは次のことを行いません:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

私も試しました:

find dir1 -name '*.png' -exec cp {} -t dir2 +
find: missing argument to `-exec'

および:

find dir1 -name '*.png' -exec cp {} dir2 +
find: missing argument to `-exec'

このページを見た後、私も試しました:

find dir1 -name '*.png' -exec cp {} dir2 {} +
find: Only one instance of {} is supported with -exec ... +

このページには次のように書かれています:

-exec{}+は2005年の[バージョン]4.2.12で追加されました

私のバージョンのfind 4.4.2です。

何が間違っているのですか?

承認された回答:

「steeldriver」のおかげで、その答えは、POSIX仕様が{}の間にあることを禁止しているためであることがわかりました。 および+ -execの後 。


Linux
  1. なぜCdはプログラムではないのですか?

  2. このファイルを「検索」しないのはなぜですか?

  3. Linux –なぜSuだけでなくSuを使用するのですか?

  1. Nullglobがデフォルトではないのはなぜですか?

  2. なぜ`exit&`が機能しないのですか?

  3. なぜRm-rfであり、Rmdir -rfではないのですか?

  1. Find In Aixの同等のMaxdepth?

  2. 検索:コマンドが見つかりません

  3. sftp rmdir が機能しないのはなぜですか?