Я пытаюсь скопировать все файлы и папки из одного каталога в другой, но исключаю определенные файлы. В частности, я хочу исключить файлы и папки Subversion. Тем не менее, я хотел бы общее, но краткое решение.
Я предполагаю, что найду необходимость исключить несколько типов файлов в ближайшем будущем. Например, я могу захотеть исключить .svn, * .bak и * .prj.
Вот то, что я собрал так для, но это не работает для меня. Первая часть, найди работы, но я делаю что-то не так с xargs и cp . Я попробовал cp с и без -R
. Кроме того, я использую OS X, и у нее, похоже, менее функциональная версия xargs, чем в системах Linux.
find ./sourcedirectory -not \( -name .svn -a -prune \)
| xargs -IFILES cp -R FILES ./destinationdirectory
-R
флаг, я уверен. Удалите это, и у вас все будет хорошо (хотя вы можете добавить, -mindepth 1
чтобы игнорировать папку каталога верхнего уровня, которую вы не хотите копировать, я полагаю)
find
команда правильно использует-prune
исключение элементов .svn, вы передаете-R
флаг,cp
которому эта команда сообщает рекурсивную. Когда это происходит, вы теряете все детали, которые были у вас вfind
команде. Я собираюсь повозиться с этим на минуту, но я думаю, что ответ не использовать-R
вcp
команде.