1

Моя проблема: у меня есть две папки, т.е. ~/foo и ~/bar . Оба имеют одинаковую структуру, например ~/[foo/bar]/subdir1 и ~/[foo/bar]/subdir2 и внутри этих подкаталогов в foo находятся папки типа .svn/

Я хочу скопировать эти папки .svn в то же место, но в bar . Поэтому я уже попробовал:

find -name .svn -exec cp -R {} ~/bar/ \;

Примечание: команда была выполнена в ~/foo/

К сожалению, эта команда не копирует файлы и не выдает мне сообщение об ошибке. Так что же я делаю не так и каково решение моей проблемы?

1 ответ1

0

cd в foo и беги

find . -name .svn -type d -exec sh -c 'for arg do echo cp -R "$arg" ../bar/"$arg"; done' sh {} +

Он вызовет команду echo для каждого .svn каталоге foo и выдаст следующий результат:

cp -R ./subdir1/.svn ../bar/./subdir1/.svn
cp -R ./subdir2/.svn ../bar/./subdir2/.svn

Убедитесь, что это правильно - вы можете заменить ../bar на ~/bar если хотите - и затем снова запустить команду find без echo:

find . -name .svn -type d -exec sh -c 'for arg do cp -R "$arg" ../bar/"$arg"; done' sh {} +

Это фактически скопирует каталоги.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .