Como copiar uma pasta sobrescrevendo uma pasta existente e excluindo todo o conteúdo antigo no Linux?

1

Posso usar rm para excluir a pasta antiga e usar cp para copiar a nova pasta. Mas como fazer isso de uma só vez?

    
por lanselibai 09.08.2018 / 11:43

2 respostas

2

Usando rsync :

rsync -av --delete source/ target

Isso excluiria todo o conteúdo do diretório target que não corresponde ao conteúdo do diretório source e também copiaria o conteúdo de source .

O / final no final de source/ é significativo, pois sem ele você obteria um diretório em target/source em vez de tornar target uma cópia de source .

A opção -a (ou --archive ) torna rsync copiar registros de data e hora e outros metadados, e a opção -v (ou --verbose ) faz com que rsync opere com detalhes. Sem --delete , nenhum conteúdo existente em target seria excluído (a menos que tivesse o mesmo nome que as coisas em source , caso em que seria atualizado).

    
por 09.08.2018 / 11:56
0

Isso é uma só vez. rm -fr olddir/* ; cp -a newdir/* olddir

    
por 09.08.2018 / 11:53