Como usar a opção de caminho do unison com vários caminhos?

12

Quero sincronizar os seguintes locais usando uníssono:

  • / home / user / Audiobooks com / shared / audiolivros
  • / home / user / Música com / shared / Music
  • / home / user / Podcasts com / shared / Podcasts

Quais seriam os parâmetros da linha de comando unison? Com base nisso, posso adivinhar

If one or more path preferences are given, then Unison will synchronize only these paths and their children. (This is useful for doing a fast sync of just one directory, for example.) Note that path preferences are intepreted literally—they are not regular expressions.

Aqui está o meu palpite. Isso está correto?

unison -ui text /home/user /nocrypt/Shared -path Audiobooks -path Music -path Podcasts 

Eu também posso usar um perfil. Eu li os documentos de ajuda e encontrei um exemplo que eu adaptei. Não tenho certeza se está correto, no entanto.

Modificado nos documentos de ajuda: Aqui está um perfil mais sofisticado, ilustrando alguns outros recursos úteis.

# Roots of the synchronization
root = /home/user
root = /shared

# Paths to synchronize 
path = Audiobooks
path = Music
path = Podcasts

Isso está correto?

No momento em que terminei de escrever esta pergunta, eu praticamente já descobri. Eu acho que ambos os métodos acima estão corretos. A grande coisa sobre o uníssono é que você pode fazer um "dry run" da mesma maneira que você faria uma sincronização real. A ação padrão é sempre "sem ação" (após todas as alterações serem apresentadas). Vou testá-lo agora e ver se funciona. Eu acho que não preciso de uma resposta, mas deixarei esta questão aqui como referência (e respondo pessoalmente com uma confirmação de que isso funcionou ou não).

    
por MountainX 22.04.2012 / 00:17

3 respostas

4

Sim, estou confirmando o que afirmei na pergunta correta.

    
por 15.05.2012 / 02:22
1

Como sua pergunta, estou postando isso para referência.

Você pode misturar e combinar variáveis. Se você quiser usar variáveis shell , por exemplo, você começa com um perfil como de costume, mas passa os argumentos que contêm variáveis shell ao invocar o comando - a razão é que você não pode usar essas variáveis normalmente de dentro de um arquivo de perfil.

root = $HOME parece funcionar, mas em root = ssh://host//$HOME , $HOME não é reconhecido como uma variável.

Exemplo documents.prf :

# select folders
  path = Documents
  path = Desktop
# options
  batch = true

O comando que você poderia usar seria parecido com isto:

unison documents -root $HOME -root ssh://user@remotehost//home/$USER
    
por 25.03.2015 / 19:12
1

Você pode usá-lo assim root é o diretório raiz e pode definir todos os caminhos que você quer ..

# Roots of the synchronization
root = /
root = ssh://x.x.x.X//

# Paths to synchronize
path = /etc/httpd
path = /var/www
    
por 08.02.2018 / 20:00