Tenho uma lista de tipos de arquivos a serem excluídos da sincronização. Mas, devido à sua natureza estranha, não sei qual bandeira é apropriada
arquivo exclude.txt
encryptable
Zone.identifier
.fuse_hidden*
goutputstream*
.spotlight-*
.fseventsd*
.ds_store*
~lock.*
Thumbs.db
attributes
comando:
rclone sync upload_local gdrive:upload --verbose --update --modify-window 1h --no-update-modtime --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s --stats-file-name-length 0 --exclude-from exclude.txt --log-file=rclone.log
ou você deve usar: "--exclude-regexp" ou "--filter-from"
PD: mas há algo muito estranho.
com --exclude-from exclude.txt
isso não funciona
com --filter-from exclude.txt
isso não funciona (colocar "-" no início da linha)
com --exclude *Zone.Identifier
... não funciona
com --exclude *.fuse_hidden
... funciona
com --exclude *Zone.identifier* --exclude *.fuse_hidden* --ignore-case
... funciona
Atualização: funciona
Por fim, a lista funciona, desde que todas as linhas tenham curingas e como aponta @petitradisgris, --ignore-case
faltou
Eu recomendaria usar o
--exclude-from
sinalizador neste caso. Ele permite que você forneça um arquivo de texto contendo uma lista de padrões a serem excluídos durante a sincronização (incluindo curingas como *).Usar
--exclude-regexp
ou--filter-from
pode não ser apropriado neste caso, pois são usados para padrões de filtragem mais complexos e podem não ser necessários para o seu exemplo específico.Cuidado com os nomes de Zone.identifier (em seu exclude.txt ) VS seu arquivo real Zone.Identifier (maiúsculas versus minúsculas). Com o
--ignore-case
sinalizador habilitado, rclone corresponderá aos padrões de exclusão usando correspondência sem distinção entre maiúsculas e minúsculas, portanto, "example.txt", "EXAMPLE.TXT" e "ExAmple.TXt" serão todos excluídos durante a operação de sincronização.Portanto, seu comando rclone ficaria assim:
[SOLUÇÃO ALTERNATIVA 2] . Você pode modificar dinamicamente a entrada incorreta no exclude.txt , sem afetar nenhuma outra entrada. então, passando para --exclude-from . Você também espera ignorar casos ao combinar nomes. (opção --ignore-case ).
Isso resultaria no seguinte comando:
[SOLUÇÃO ALTERNATIVA 3] . A opção --exclude-from de fato desconsidera os arquivos, combinando seus nomes exatos. No entanto, você pode utilizar curingas em nomes de arquivos para permitir correspondências parciais de nomes. Seu objetivo é processar um arquivo que lide com nomes parciais com curingas e também nomes completos como se fossem nomes parciais (com curingas), sem modificar o arquivo exclude.txt no disco. É importante observar que você também espera ignorar casos ao combinar nomes. (opção --ignore-case )
Uma solução possível seria modificar ativamente o exclude.txt anexando curingas no início das linhas, mas somente se eles ainda não estiverem presentes. Depois, passe esta versão modificada para o parâmetro --exclude-form .