Você pode usar rsync
para conseguir o que deseja.
rsync -r --delete-during /backup/location/ /production/directory
Para mais informações, consulte man rsync
Estou fazendo backups de um diretório com um simples:
cp -R /production/directory /backups/location
Às vezes, preciso restaurar um backup, mas faço:
cp -R /backups/location/* /production/directory
ou
cp -RT /backups/location /production/directory
tem o efeito indesejado (no meu caso) de manter os arquivos presentes em /production/directory
mas não no backup, enquanto eu quero que eles sejam removidos, para obter as coisas exatamente no mesmo estado de quando o backup foi feito.
Existe algum interruptor mágico, ou outro comando simples, para fazer isso, ou eu preciso remover manualmente todo o diretório primeiro?
Bem, há um comando chamado rm -R
que remove um diretório inteiro.
Então você inicia sua restauração com rm -R /production/directory
, seguido pelo comando restore.