Use o rsync para copiar todos os arquivos, exceto certos nomes de arquivos com uma certa extensão

19

Eu tenho dois cartões flash do mesmo tamanho e quero copiar o conteúdo de um para o outro com base nas seguintes regras:

  1. Eu quero todos os diretórios e subdiretórios no lugar
  2. Desejo excluir arquivos do tipo .FOO, .BAR e .ZIM (todos os outros arquivos são copiados)
  3. Bônus: Seria legal se saísse os nomes dos arquivos conforme eles são copiados, considerando que ele copiará ~ 8 GB de informações

Isso poderia ser feito com "encontrar" de alguma forma?

    
por macek 05.02.2010 / 17:08

2 respostas

30

Isso seria significativamente mais fácil usando rsync com sua opção --exclude .

rsync -av --exclude='*.FOO' --exclude='*.BAR' --exclude='*.ZIM' /source /dest

A opção -v fornecerá uma saída detalhada na qual os arquivos estão sendo sincronizados.

    
por 05.02.2010 / 17:18
0

Se você tem um grande número de extensões para excluir, pode criar um arquivo e anotar toda a extensão ou arquivo para excluir e usar apenas uma opção de exclusão para simplificar.

rsync -ravz --exclude='./abc,txt' /source /dest

É sempre bom usar z para compressão e opção r se você tiver que copiar recursivamente.

    
por 07.11.2015 / 18:57