Как вы можете рекурсивно скопировать все файлы * .foo в src для назначения с помощью cp и / или find? - PullRequest
3 голосов
/ 16 марта 2009
cp -v -ur path/to/jsps/ /dest/path/

Приведенная выше команда копирует все файлы, которые были обновлены, из исходного каталога в место назначения, сохраняя структуру каталога.

Я не могу понять, как копировать только файлы * .someExtention. Я знаю, что вы можете использовать что-то вроде:

find -f -name *.jsp -exec some awesome commands {}

Но я не знаю, как это сделать (и у меня нет времени, чтобы подробно прочитать информационные страницы).

Вся помощь очень ценится.

Спасибо, LES

Ответы [ 2 ]

7 голосов
/ 16 марта 2009

Если вы хотите использовать find / cp, то вам нужно сделать следующее:

find -f -name *.jsp -exec cp --parents {} /dest/path \;

но rsync, вероятно, лучший инструмент.

4 голосов
/ 16 марта 2009

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

rsync -a \
   --include='*.foo' \
   --include='*/' \
   --exclude='*' \
   path/to/jsps/ /dest/path/

См. руководство и ознакомьтесь с разделом, озаглавленным ПРАВИЛА ФИЛЬТРА, для получения дополнительной информации.

...