rsync --include-from & delete = arquivos extras removidos

2

Eu tenho 2 dirs: src e dst. Src contém apenas 1 arquivo "index.php". Dst contém "index.php" AND "readme.txt". Eu também tenho um arquivo list.txt, que contém apenas uma linha: "index.php".

Agora, estando no diretório que contém src e dst, eu executo o seguinte comando:

rsync -av --include-from=list.txt src/ dst/ --del  

Atualiza o arquivo "index.php" se for necessário, MAS também exclui o readme.txt.

Por que ele é excluído, se não estiver no arquivo list.txt? Qualquer maneira simples de "consertar" esse comportamento?

O que eu quero basicamente é fazer com que o rsync só se importe com os arquivos da lista. Eles podem precisar de atualização ou exclusão (assim, a opção --del), mas eu não quero que ele toque em outros arquivos. Não consigo usar a opção "--files-from" porque ela não exclui arquivos no destino.

EDITAR: "index.php" era apenas um exemplo aqui - na verdade, um exemplo muito simples, porque src e dst podem conter árvores de diretório inteiras, então se list.txt tiver uma entrada como "abc / test.php" ele também deve funcionar para este arquivo .

    
por wanson 27.10.2014 / 21:47

1 resposta

1

A solução é adicionar --exclude=* :

 rsync --verbose  -r --del --include-from=list.txt --exclude=* src/ dst/

Atualizaremos somente os arquivos de list.txt e excluiremos de dst somente se eles estiverem ausentes em src e serão incluídos em list.txt .

    
por 28.10.2014 / 00:20

Tags