rsync / data / * / images / pattern

0

Eu tenho uma estrutura de pastas da seguinte forma:

- data
-- user 1
--- images
--- other stuff
-- user 2
--- images
--- other stuff
-- user 3
...

Eu quero rsync all images pastas. Se estou usando uma regra de inclusão / exclusão, tenho problemas, pois não conheço o usuário id na frente. Na aplicação real, é um número aleatório.

Eu preciso de algo assim data/**/images/ , o que significa ter todas as pastas de imagens abaixo da pasta de dados.

Isso é viável sem trapacear como a tubulação ls ou similar em rsync ?

    
por Daniel Hitzel 01.03.2017 / 15:58

1 resposta

1

Se você deseja copiar todas as pastas images , um caractere curinga simples seria suficiente. No entanto, parece que você deseja manter os caminhos no destino, portanto, precisará do sinal -R para fazer isso.

cd /path/to/data
rsync -iavR */images remote:/path/to/destination/

Isso incluirá a parte */images do caminho de origem no destino abaixo do diretório de destino. Então, se você tivesse /path/to/data/12345/images/picnic.jpg na fonte, acabaria sendo copiado para /path/to/destination/12345/images/picnic.jpg

Adicione --progress ou --dry-run se estiver executando de forma interativa e quiser ver o que está acontecendo.

    
por 01.03.2017 / 17:21

Tags