Escrevendo um script para rsync todos os diretórios

1

Eu tenho um enorme conjunto de arquivos de backup, cada um contendo um diretório de Vídeos. Cada diretório de vídeo é um pouco diferente. Eu gostaria de mesclar estes em um único diretório para conservar, como eu realmente não me importo com o backup de cada vídeo veio de.

Para fazer isso, eu acho que o rsync seria a melhor ferramenta, mas estou tendo dificuldades em criar um script limpo para rsyncar o diretório de vídeo de cada backup com um destino externo.

Em outras palavras, quero um script que automatize o processo a seguir

rsync -a ./Backups/Backup-x/Videos/ ./CollectedVideos/
rsync -a ./Backups/Backup-y/Videos/ ./CollectedVideos/
rsync -a ./Backups/Backup-z/Videos/ ./CollectedVideos/
rsync -a ./Backups/Backup-t/Videos/ ./CollectedVideos/

Onde todos os arquivos no diretório Backups/ são "jogo limpo".

Qualquer sugestão seria apreciada.

    
por neanderslob 31.07.2014 / 03:33

1 resposta

2

Se pelo menos uma das pastas em ./Backups contiver um diretório Video ,

for dir in ./Backups/*/Videos
do
    if [[ -d $dir ]]
    then
        rsync -a $dir/* ./CollectedVideos/
    fi
done

pode estar próximo do que você está procurando.

O /* após $dir é importante para copiar os arquivos sem incluir seu diretório.

    
por muru 31.07.2014 / 03:53