rsync não está usando a opção --files-from?

12

Estou tentando executar rsync -a --files-from=~/.rsync_file_list ~/destination e isso me diz: rsync error: syntax or usage error (code 1) at options.c(1652) [client=3.0.7] . Alguém pode me esclarecer sobre o que estou fazendo errado?

O arquivo ~/.rsync_file_list contém apenas uma lista de nomes de arquivos precedidos por ~/ , separados por novas linhas (embora eu também tentei listá-los todos na mesma linha, com o mesmo resultado).

Se eu executar rsync -a ~/file ~/file2 ~/file3 ~/destination , tudo funcionará bem. Então, o que estou perdendo sobre a opção --files-from ?

    
por Wolf 12.04.2011 / 14:27

2 respostas

19

Ok, achei o problema.

  1. O arquivo que contém nomes de arquivos deve conter apenas nomes de arquivos ; sem caminhos, parentes ou não;
  2. Depois de especificar --files-from=FILE , o rsync requer um diretório de origem para encontrar os arquivos listados.

Portanto, o comando deve ser rsync -a --files-from=~/.rsync_file_list $HOME/ /destination .

.rsync_file_list deve ler:

file 1
file 2
file 3
    
por 12.04.2011 / 15:42
0

Usar o "~" pode não funcionar dentro de um arquivo "arquivos-de-arquivo", a menos que o rsync seja inteligente o suficiente para reconhecer e traduzir o símbolo "~".

Quando você especifica um "~" como parte de um comando na linha de comando do seu shell, é o próprio shell que converte "~" para o seu diretório home antes passando o argumento ao longo do programa. Portanto, mesmo que você digite rsync -a ~/file , o que rsync "vê" será, na verdade, o caminho resolvido ou rsync -a /home/foo/file .

Consulte Expansão do Bash Tilde para obter mais informações.

    
por 17.12.2013 / 16:48

Tags