8

Как мне нужно скопировать все файлы, кроме пары каталогов из одного каталога в другой. например:

cp -R test /www/test2 would copy all

Но я хочу исключить 2 папки с именем log и logs.

Я попробовал что-то вроде:

find ~test -not -name logs,log |  cp -R test /www/test2 

Но можете ли вы помочь мне с синтаксисом?

3 ответа3

10

Используйте rsync:

rsync -a --exclude=logs --exclude=log from/ to/
2

Я думаю, что вы ищете что-то вроде:

find dir -type d ! \( -name 'log' -o -name 'logs' \) | xargs -I{} cp -R {} /www/test2/{}
0

Если вы используете :

shopt -s extglob
cp -R test/!(log|logs) /www/test2

Смотрите http://wiki.bash-hackers.org/syntax/pattern

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