Substitua os arquivos pela data da última modificação específica por arquivos (ou datas) do arquivo morto

3

Eu tinha um disco rígido quase total (principalmente /home ). Eu instalei uma nova unidade maior, copiei /home para ela e continuei com a minha vida.

Isso foi em 17/05/2013. Eu sei que foi em 17/05/2013 porque eu esqueci o sinalizador de arquivamento quando copiei tudo, então cada arquivo no servidor que não foi atualizado desde então é datado de 17/05/2013.

Ainda tenho o diretório /home original ( /oldhome ) com as datas corretas de última modificação.

Eu preciso de um ponto de partida para escrever um script que substitua cada arquivo em /home datado de 17/05/2013 pelo arquivo original correspondente de /oldhome (com a data correta intacta). Eu gostaria apenas de substituir os arquivos datados de 17/05/2013, pois alguns arquivos que estavam presentes naquela data foram subseqüentemente atualizados e eu, é claro, quero manter as versões atualizadas desses arquivos.

A contagem de arquivos em /oldhome é ~ 63K

Pensamentos sobre por onde começar?

EDITAR

OK. Com base no comentário de Theophrastus abaixo (obrigado), posso começar com:

... de dentro de /home : find -type f -newermt 2013-5-17 ! -newermt 2013-5-18 -print0 | xargs -I % -0 rsync -avzI --dry-run /oldhome% /home%

... que acho que pode estar quase aqui. A saída de find tem um período inicial que quebra o caminho no comando rsync (obtemos /oldhome./directory/filename /home./directory/filename.ext quando tudo está concatenado. Posso reestabelecer a instrução find de alguma forma para deixar de fora o período inicial? O objetivo é identificar arquivos em /home com a data de 5/17/2013 e substituí-los por uma cópia de /oldhome - não há arquivos em /oldhome posteriores a 17/05/2013.

    
por csisia 22.12.2016 / 20:38

0 respostas

Tags