Исключенные каталоги в команде 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 .


Что мне здесь не хватает?

0 ответов

Другие вопросы по тегам