excluindo o diretório com uma grande quantidade de arquivos com rsync -a delete

1

Eu tenho um diretório chamado crmlogs , como eu uso rsync -a --delete para excluí-lo?

mkdir emptydir
rsync -a --delete ./emptydir ./crmlogs
    
por Lilly 05.01.2016 / 15:43

1 resposta

2

A opção --delete exclui arquivos do destino que não existem na origem. Se você quiser excluir crmlogs , precisará copiar de uma fonte que não contenha esse diretório. Seu exemplo mostra você usando rsync entre dois diretórios sob o diretório raiz. É mais fácil ver neste exemplo em /tmp :

/tmp $ cd tmp
/tmp $ mkdir foo
/tmp $ mkdir bar
/tmp $ mkdir bar/crmlogs

/tmp $ rsync -a --delete foo/ bar/

/tmp $ ls -l bar
total 0
drwxr-xr-x  2 mint mint  40 Jan 10 23:19 ./
drwxrwxrwt 10 root root 220 Jan 10 23:19 ../

Observe que rsync -a --delete foo bar ou rsync -a --delete ./foo ./bar apenas coloca uma cópia de foo em bar .

A julgar pelo seu comentário de acompanhamento, não tenho certeza se você realmente deseja excluir o diretório crmlogs , ou apenas liberar certos arquivos de log que podem não existir mais na origem. Nesse caso, a opção --delete deve ser útil para você quando esses arquivos forem removidos da pasta de origem.

    
por 11.01.2016 / 00:33

Tags