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の後 。