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 .

Respostas:


18

Eu escreveria assim:

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

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.


O rsync 3 * parece falhar nos * curingas, embora o | | exclua funcione bem.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.