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/{} {} \;