Isso funcionou bem para mim:
rsync -vrt --size-only /src /dest
O comando --size-only compara arquivos apenas com base no tamanho, o que foi praticamente inalterado para mim. O -t copia os timestamps.
Eu copiei uma quantidade muito grande de dados usando cp -r .
Olhando agora, percebi que isso significa que perdi meus tempos de modificação de arquivos. Eu deveria ter usado cp -rp .
Minha estrutura de diretórios e arquivos não foram alterados: existe alguma maneira de copiar apenas os atributos / timestamps agora? Estou pensando que rsync pode ser útil.
Isso funcionou bem para mim:
rsync -vrt --size-only /src /dest
O comando --size-only compara arquivos apenas com base no tamanho, o que foi praticamente inalterado para mim. O -t copia os timestamps.
Você pode fazer isso com find e touch .
cd destination
find -depth -exec touch -r /path/to/source/{} {} \;
A opção -depth permite que os tempos dos diretórios sejam definidos após o seu conteúdo ter sido definido. Isso pressupõe que seu find interpola {} quando é uma subseqüência de um argumento. Se isso não acontecer, invoque um shell:
find -depth -exec sh -c 'for x; do touch -r "$0/$x" "$x"' /path/to/source {} +
Para copiar os tempos de acesso, execute touch -a … também.
find -depth -exec touch -a -r /path/to/source/{} {} \; -exec touch -r /path/to/source/{} {} \;