Como excluir todos os arquivos, exceto arquivos específicos com Duplicity?

4

Estou tentando apenas fazer backup de arquivos específicos com Duplicity, então usei este comando pela primeira vez:

duplicity /source-path --include "**/*/*.txt" --include "**/*/*.xml" /dest-path

No entanto, isso gera o seguinte erro:

Last selection expression:
    Command-line include glob: **/*/*.txt
only specifies that files be included.  Because the default is to
include all files, the expression is redundant.  Exiting because this
probably isn't what you meant.

Depois tentei excluir tudo e incluir exatamente o que preciso:

duplicity /source-path --exclude "**/*" --include "**/*/*.txt" --include "**/*/*.xml" /dest-path

Mas ainda estou recebendo o mesmo erro. Como eu iria fazer isso, basicamente apenas fazer backup do .txt e .xml na fonte?

    
por this.lau_ 09.09.2014 / 20:04

1 resposta

5

Na longa descrição das muitas variantes de como incluir e excluir arquivos, parece haver uma frase mais importante:

Um determinado arquivo é excluído pelo sistema de seleção de arquivos exatamente quando a primeira condição de seleção de arquivo correspondente especifica que o arquivo seja excluído.

De acordo com isso, você precisa de uma opção de inclusão para os arquivos que deseja primeiro, para que eles sejam correspondidos e a primeira correspondência não possa mais ser uma exclusão. O, tem uma opção de exclusão para combinar tudo. Os arquivos correspondidos antes não serão afetados, mas todo o resto é excluído agora:

 duplicity ... --include "**/*/*.txt" --exclude "**/*" src dest

Para o seu exemplo, isso seria

 duplicity /source-path --include "**/*/*.txt" --include "**/*/*.xml"  --exclude "**/*" /dest-path

Para entender quais arquivos são correspondidos, é possível usar execuções a seco, sem alterar nada, com o registro em log para listar os arquivos correspondentes:

duplicity --dry-run --no-encryption -v info --include ... --exclude ... src dest


De man duplicity :

 FILE SELECTION
        duplicity accepts the same file selection options rdiff-backup does,
        including --exclude, --exclude-filelist-stdin, etc.

        When duplicity is run, it searches through the given source directory
        and backs up all the files specified by the file selection system.  The
        file selection system comprises a number of file selection conditions,
        which are set using one of the following command line options:
               --exclude
               [  ...  ]
               --include-regexp
        Each file selection condition either matches or doesn't match a given
        file.  A given file is excluded by the file selection system exactly
        when the first matching file selection condition specifies that the
        file be excluded; otherwise the file is included.
    
por 09.09.2014 / 22:22