Rsync dois tipos de arquivo em um comando?

13

Como escrever isso em uma linha, também sem repetir o mesmo caminho?

rsync -a root@somewhere:/folder/remote/*.txt .
rsync -a root@somewhere:/folder/remote/*.jpg .
Cheng
fonte

Respostas:

18

Eu escreveria assim:

rsync -a root@somewhere:/folder/remote/*.{txt,jpg} .
Gert
fonte
7
Essa é uma técnica geral que você pode usar com qualquer comando. O shell repetirá o argumento, substituindo a expressão entre colchetes por cada item da lista. Chama-se extensão de chave
Shawn J. Goff
11
rsync -a --include='*.txt' --include='*.jpg' --exclude='*' root@somewhere:/folder/remote/ .

(Note-se que a final /em /folder/remote/, e a colocação de --exclude='*'após o incluem regras, são importantes.) Em conchas que expansão apoio cinta (por exemplo, bater, ksh, zsh):

rsync -a --include='*.'{txt,jpg} --exclude='*' root@somewhere:/folder/remote/ .

Adicione --include='*/' --prune-empty-dirsse você deseja copiar arquivos em subdiretórios também.

Gilles 'SO- parar de ser mau'
fonte
O rsync 3 * parece falhar nos * curingas, embora o | | exclua funcione bem.
precisa saber é o seguinte