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