Como juntar várias pastas usando o rsync

0

Eu quero usar o rsync para mesclar essas várias pastas em uma única pasta. Cada pasta contém nomes de arquivos exclusivos, portanto, não há conflitos em termos de nomes de arquivos.

Minhas pastas são atualmente a estrutura a seguir:

Project
  -Folder 1
    -File 1
  -Folder 2
    -File 2
  -Folder 3
    -File 3

Project 1
  -Folder 1
    -File 4
  -Folder 2
    -File 5

Project 2
  -Folder 3
    -File 6

Project 3
  -Folder 4
    -File 7
  -Folder 5
    -File 8

Eu quero alcançar o seguinte:

Project 
Folder 1
  -File 1
  -File 4
Folder 2
  -File 2
  -File 5
Folder 3
  -File 3
  -File 6
Folder 4
  -File 7
Folder 5
  -File 8
    
por orange 02.08.2018 / 05:10

1 resposta

0

Eu não testei, mas você pode tentar --max-delete = 0 como uma opção para experimentar. Existem desafios óbvios (por exemplo, se o diretório de origem excluir um arquivo, ele nunca será excluído do destino).

Na sua posição, eu consideraria seriamente o scp em vez do rsync (se você está fazendo apenas uma transferência), ou criando um diretório paralelo usando hard links.

Isso seria parecido com o seguinte (novamente, experimentar e testar; não executei nenhum desses comandos por algum tempo):

Do seu diretório de trabalho / sincronização:

rsync --inplace A/Project ./Project    # Perform all of the syncs
rsync --inplace B/Project1 ./Project1
rsync --inplace C/Project2 ./Project2
rsync --inplace D/Project3 ./Project3
mkdir -p /tmp/combination/Project      # Create the destination dir if needed.
rm -r /tmp/combination/Project/*       # Clean it out of old cruft.
cp -l */* /tmp/combination/Project/    # Create hard links at the correct scope.

Sua saída desejada deve estar em / tmp / combination / Project, e deve ser atualizada para a atual executando todos os comandos acima uma segunda vez.

    
por 02.08.2018 / 06:13

Tags