copiando arquivos de vários diretórios para um usando rsync

0

É possível copiar arquivos de vários subdiretórios para um único diretório. Por exemplo, eu tenho uma estrutura que se parece com:

+ dir1
  + file1.ext
  + file2.ext
+ dir2
  + file3.ext
  + file4.ext
  + subdir
     +dontwanttocopy.ext

Atualmente estou usando o seguinte comando

find "//mysourcepathdirectory/" -maxdepth 2 -type f -name "*.ext" -exec rsync -vr -e ssh {} user@server:/mypath/videos/ \;

Este comando me faz logar repetidamente no servidor. Eu gostaria de um comando que exige que eu faça o login apenas uma vez. Eu estou usando uma chave SSH para evitar a dor, mas algo está me dizendo que esta não é a abordagem correta. Eu gostaria de usar o rsync porque apenas alguns arquivos serão alterados com o tempo. Além disso, gostaria de evitar a cópia de arquivos em subdiretórios abaixo do meu caminho principal (por exemplo, subdir no exemplo acima)

    
por rjss 09.08.2017 / 18:51

1 resposta

2

Sim, existe o comando rsync com a opção -r (cópia recursiva).

rsync -r /path/in/source/dir*/*.ext /path/to/destination

Você pode até mesmo usar a opção --exclude para excluir subdiretórios e estruturas de diretórios.

rsync -rv --exclude='*/' /path/in/source/dir*/ /path/to/destination/

Ou com subdiretórios:

rsync -rv --exclude='*/*' /path/in/source/dir*/ /path/to/destination/

Você também pode usar o comando scp

scp -r /path/in/source/dir*/*.ext /path/to/destination
    
por 09.08.2017 / 18:54

Tags