Исключенные каталоги в команде find неправильно переданы в -exec cp
Я пытаюсь скопировать папку, содержащую структуру подпапок, исключая указанную подпапку с помощью команды find -exec cp. Мне удалось использовать несколько рабочих опций исключения, когда я использую только команду find, но после добавления команды '-exec cp' условия исключения больше не работают.
Представьте интересующий каталог, содержащий несколько файлов и подпапок, с одной подпапкой с именем "exclusion_string"
Эта команда поиска работает правильно, если используется одна:
find ~/directory/of/interest/ -maxdepth 2 ! -name "*exclusion_string*"
... в то время как эта команда отменяет критерий исключения:
find ~/directory/of/interest/ -maxdepth 2 ! -name "*exclusion_string*" -exec cp -r '{}' . \;
Аналогичным образом, при использовании других критериев или аргументов исключается подкаталог, например:
find ~/directory/of/interest/ -maxdepth 2 -name "*" -size -100k -exec cp -r '{}' . \;
find ~/directory/of/interest/ -maxdepth 2 -name "*exclusion_string*" | xargs cp -rt .
Что мне здесь не хватает?