piping find to rsyncrypto

1

Estou configurando o rsyncrypto para criar um backup do meu diretório de usuários. Eu li que para excluir diretórios eu preciso excluir com find e pipe para rsyncrypto.

Estou tentando excluir todos os diretórios .svn de serem criptografados e sincronizados.

Aqui está o comando de localização que estou usando. Não vejo nenhum diretório .svn na saída:

localize ~ / Documents -type d (-name .svn) -prune -o -print

Mas quando canalizo a saída para rsyncrypto, vejo vários diretórios .svn sendo criptografados.

localize ~ / Documents -type d (-name .svn) -prune -o -print | rsyncrypto -vc --trim = 3 --filelist - / tmp / Documents / Documents.keys backup.crt

Alguém pode me ajudar a reescrever o comando para excluir do rsyncrypto quaisquer arquivos / pastas que tenham .svn no caminho deles?

    
por Richard 21.08.2010 / 21:55

1 resposta

1

Seu comando find original imprime todos os diretórios, exceto aqueles sob um diretório .svn , em particular, imprime ~/Documents . Experimentalmente, rsynccrypto recursiva em todos os diretórios existentes em uma lista de arquivos, mesmo que (como você, eu acho) eu entenda a documentação para dizer que ela deve apenas recorrer a diretórios com um / anexado.

Portanto, você precisa imprimir apenas arquivos que não sejam diretórios. Isso significa que você deve restringir -print com -type f (para fazer backup apenas de arquivos regulares) ou ! -type d (para fazer backup de todos os não diretórios, incluindo links simbólicos).

find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
              -o \! -type d -print

Observe que isso não fará backup do horário de modificação e da propriedade de diretórios ou de diretórios vazios. Isso também incluirá diretórios vazios:

find ~/Documents -type d \( -name .svn -o -name .DS_Store \) -prune \
              -o \! -type d -print \
              -o -type d -empty -print
    
por 21.08.2010 / 23:42