Tenho uma grande quantidade de diretórios com uma estrutura de subpastas semelhante. Cada diretório possui um subdiretório "s". Alguns diretórios possuem um prefixo "_tmp" no nome.
O que eu quero é copiar todos os diretórios principais para um novo servidor, mas deixar os s-subdirs e _tmp -dirst fora da transferência.
No OSX (rsync v. 2.6.9) este comando funciona bem:
rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
Mas no Ubuntu (rsync v. 3.0.7) o mesmo comando falha, _tmps está fora, mas as pastas s ainda estão dentro.
Responder1
Eu pediria que você acrescentasse seu comando para echo
ver o que você está executando.
echo rsync -avz --exclude */s/* --exclude *_tmp SOURCE/ DEST/
Dependendo do seu shell, das configurações do shell e do conteúdo do seu diretório atual, o que não está entre aspas *_tmp
pode ser expandido para um arquivo específico (que provavelmente não corresponderá à maioria dos que você deseja excluir). Deve echo
mostrar o que realmente está acontecendo.
Você deve proteger os asteriscos com aspas para evitar a expansão do shell.
rsync -avz --exclude '*/s/*' --exclude '*_tmp' SOURCE/ DEST/