Como fazer backup de todos os arquivos que estou copiando antes de serem sobrescritos?

2

Eu tenho uma pasta como esta:

./folder-a/index.html
./folder-b/index.html
./folder-c/subdir/index.html
./new-content/folder-a/index.html
./new-content/folder-b/index.html
./new-content/folder-c/subdir/index.html

A pasta new-content contém um material atualizado atualizado que eu atualizo. Quando eu quiser atualizar meu conteúdo, vou copiá-los para sobrescrever os existentes, assim:

\cp -rf new-content/* ./

Mas como posso configurar um backup dos arquivos sobrescritos?

Qualquer maneira simples de conseguir isso?

    
por AGamePlayer 27.08.2015 / 12:26

1 resposta

6

De man cp (a versão GNU, encontrada no Linux e no Cygwin)

--backup[=CONTROL]

make a backup of each existing destination file

-b like --backup but does not accept an argument

Exemplo

touch 1 2
cp -bv 2 1
‘2’ -> ‘1’ (backup: ‘1~’)

Observe que isso não verifica os arquivos de backup existentes, ou seja, se 1~ existir, ele será substituído. Usando a versão longa, você pode evitar isso. Por exemplo,

cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~1~’)
cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~2~’)
cp -v --backup=numbered 2 1
‘2’ -> ‘1’ (backup: ‘1.~3~’)
    
por 27.08.2015 / 13:21