Mesclar muitas pastas mantendo os arquivos mais recentes?

2

Eu tenho 102 diretórios que gostaria de mesclar em um único diretório. Se houver conflitos, eu gostaria de usar o arquivo mais recente.

Como posso fazer isso?

Anteriormente, tentei pesquisar as pastas e copiá-las no mesmo diretório pai, pois os diretórios que eu quero mesclar têm o mesmo nome que ele pergunta se quero mesclá-los. No entanto, ele não tem uma opção para manter automaticamente o arquivo mais recente.

    
por Annan 16.10.2012 / 14:31

1 resposta

1

Você pode fazer isso com uma linha de comando:

find orig/ -type f  -exec cp -u -a \{\} dest/ \;

em que orig é o diretório que contém as coisas que você deseja nivelar e copiar e o seu diretório de destino. Então, o que isso vai fazer é:

  1. encontre cada arquivo no orig / e em seus subdiretórios
  2. para cada arquivo, chame copy (cp) para dest com as seguintes opções: u significar update, ou seja, copiar somente se o arquivo for mais novo, um archive, ou seja, manter atributos, entre eles as datas de criação / modificação

O pequeno teste aqui funcionou, mas é claro, tenha cuidado e tenha um backup em caso: -)

    
por alci 16.10.2012 / 15:31