Eu usaria o rsync porque significa que, se ele for interrompido por algum motivo, você poderá reiniciá-lo facilmente com um custo muito pequeno. E, sendo rsync, pode até reiniciar parte do caminho através de um arquivo grande. Como outros mencionam, ele pode excluir arquivos facilmente. A maneira mais simples de preservar a maioria das coisas é usar o -a
flag - ‘archive’. Então:
rsync -a source dest
Embora UID / GID e links simbólicos sejam preservados por -a
(consulte -lpgo
), sua pergunta implica que você pode querer uma cópia completa das informações do sistema de arquivos; e -a
não inclui links físicos, atributos estendidos ou ACLs (no Linux) ou os forks de recursos nem acima (no OS X.) Assim, para uma cópia robusta de um sistema de arquivos, você precisará incluir esses sinalizadores:
rsync -aHAX source dest # Linux
rsync -aHE source dest # OS X
O cp padrão será iniciado novamente, embora o sinalizador -u
"copie somente quando o arquivo SOURCE for mais recente que o arquivo de destino ou quando o arquivo de destino estiver ausente" . E o sinalizador -a
(archive) será recursivo, e não recopiar arquivos se você precisar reiniciar e preservar as permissões. Então:
cp -au source dest