Как рекурсивно копировать каталоги, начинающиеся с «abc» в Linux / Unix?

У меня есть каталог ~ / plugins / , а внутри есть много подкаталогов. Если бы я хотел создать резервную копию где-то еще только подкаталогов, начинающихся с abc , могу ли я сделать это с помощью однострочной команды копирования? Я бы предположил, что что-то вроде этого сработает (но это не так):

cp -R ~/plugins/abc* ~/destination/

Я бы предпочел использовать однострочную команду, если это возможно, потому что я также хотел бы использовать тот же синтаксис для rsync, и если мне нужно сделайте что-нибудь вроде

find ~/plugins/ -type d -name "abc*" -exec cp -R {} ~/destination;

, тогда это отлично подойдет для команды cp , но это будет означать, что мне придется запускать rsync один раз для каждого каталога, и это просто не кажется эффективным: но продолжайте сталкиваться с ошибкой, как будто cleaned_data неизменна.

Итак, чтобы решить эту проблему, я сделал копию, изменил ее и переназначил себе. Это лучший способ сделать это? Мог / должен был я обработать это в представлении? Создание копии кажется плохой формой, но я все время натыкаюсь на «непреложные» препятствия. Пример кода ниже, где я просто проверяю, есть ли в конце предмета '--help', и если нет, добавляю его. Спасибо

def clean(self):
        cleaned_data=self.cleaned_data.copy()
        subject=cleaned_data.get['subject']
        if not subject.endswith('--help'):
            cleaned_data['subject']=subject+='--help'
        self.cleaned_data=cleaned_data
        return self.cleaned_data
10
задан rich 11 March 2011 в 16:20
поделиться