rsync inclui todos os diretórios e determinados subdiretórios e * .java do último sub-diretório

1

Estou tentando incluir todos os diretórios rsync, mas apenas um de cada subdiretório que contém determinados arquivos. Por exemplo,

rsync -auvz --include '*' --include '* / certain_sub /' --include '* / certain_sub / *. java' --exclude '*' origem dest

Mas isso me dá todos os diretórios e subs com todos os seus arquivos, já que incluo todos no meu primeiro include, eu aceito. Para explicar com mais clareza, há um monte de alunos e cada um tem suas atribuições de laboratório e lição de casa em seus próprios diretórios. Eu quero pegar o subdiretório da tarefa relevante (por exemplo, homework09) e todos os arquivos desse sub. Eu sou, bastante verde, com rsync, mas isso me ajudaria a classificar centenas de arquivos e poupar muito tempo.

    
por user266060 23.10.2013 / 03:50

1 resposta

0

O uso de regras simples de --include e --exclude não funcionará aqui. Mas o rsync também oferece --filter .

Acho que rsync -ruvpgot --filter '+ *.java' certain_sub/ dest/ fará o que você quer, ou seja. copia todos os diretórios, mesmo os vazios, mas dentro dos diretórios apenas os arquivos correspondentes ao padrão "* .java" são copiados. Veja mais exemplos de man rsync sob o cabeçalho REGRAS DE FILTRO.

    
por 24.10.2013 / 07:35