Redo rsync para preservar os hard links?

6

Estou copiando uma partição Raspbian de um cartão SD para uma instalação Raspbian autônoma em um novo cartão SD. Com base em uma sugestão em outro lugar, eu corri:

rsync -av --exclude=/mnt / /mnt

mas agora estou preocupado que eu não preserve links físicos porque não incluí a diretiva -H e, em vez disso, o rsync fez cópias de arquivos em vez de preservar os hard links.

Como posso corrigir esse possível erro? Posso executar alguma forma de rsync para corrigir isso? como:

rsync -avH --delete-after --exclude=/mnt / /mnt
    
por BartmanEH 12.07.2015 / 19:41

1 resposta

4

Sua ideia está certa.

Aqui está um teste:

/foo$ stat -c '%i-%n' *
658846-egg
656129-spam
656129-test


/bar$ rsync -av /foo/ .
sending incremental file list
./
egg
spam
test
sent 229 bytes  received 76 bytes  610.00 bytes/sec
total size is 0  speedup is 0.00


/bar$ stat -c '%i-%n' *
657110-egg
663431-spam
663560-test


/bar$ rsync -Hav --delete-delay /foo/ .
sending incremental file list
test => spam

sent 107 bytes  received 19 bytes  252.00 bytes/sec
total size is 0  speedup is 0.00


/bar$ stat -c '%i-%n' *
657110-egg
663431-spam
663431-test

Em uma nota diferente, é melhor usar --delete-after em vez de outras opções semelhantes, ou seja, --delete-before , --delete-delay , --delete-during porque essas opções decidem quais arquivos serão excluídos antes ou durante a transferência.

    
por 12.07.2015 / 20:31

Tags