У меня огромное количество каталогов с похожей структурой подпапок. Каждый каталог имеет подкаталог "s". Некоторые каталоги имеют префикс "_tmp" в имени.
Я хочу скопировать все основные каталоги на новый сервер, но исключить из переноса s-subdirs и _tmp -dirst.
На OSX (rsync v. 2.6.9) эта команда работает нормально:
rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
Но в Ubuntu (rsync v. 3.0.7) та же команда не выполняется, _tmps отсутствуют, но s-folders все еще присутствуют. Есть ли обходные пути?
решение1
Я бы попросил вас предварять свою команду , чтобы echo
увидеть, что вы запускаете.
echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
В зависимости от вашей оболочки, настроек оболочки и содержимого текущего каталога, не заключенное в кавычки *_tmp
может быть развернуто в определенный файл (который, вероятно, не будет соответствовать большинству из тех, которые вы хотите исключить). Должно быть echo
показано, что на самом деле происходит.
Звездочки следует защищать кавычками, чтобы предотвратить расширение оболочки.
rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/