Eu tenho um arquivo parecido com este:
/cygdrive/d/path/to/my/file1.png
/cygdrive/d/path/to/my/file2.png
/cygdrive/d/path/to/my/file3.png
/cygdrive/d/path/to/my/file4.png
Estou chamando o rsync com:
rsync --files-from="/cygdrive/d/myfiles.txt" "/cygdrive/d/path/to/" "user@remotehost:/cygdrive/c/new/path/for"
Quero que o rsync crie uma estrutura dir como:
c:\new\path\for\my\file1.png
...
Mas está falhando com erros como:
rsync: change_dir "/cygdrive/c/new/path/for/cygdrive/d/path/to/my" falhou: arquivo ou diretório inexistente rsync: mkstmp "/cygdrive/c/new/path/for/cygdrive/d /caminho/para/meu/arquivo1.png.asdjfhsdj" falhou: arquivo ou diretório inexistente
Como faço para o rsync entender que /cygdrive/d/path/to/
é a parte do caminho de origem que é a "raiz" e que apenas subpastas/arquivos dele devem ser replicados para a raiz de destino para fornecer um novo caminho no destino?
Responder1
Parece que o bit especificado na linha de comando é a parte "raiz de origem" e a linha do arquivo é a parte "relativa".
Portanto, precisei retirar /cygdrive/d/path/to/
todas as linhas do arquivo, deixando apenasmy/file1.png
Então, quando chamado com a linha de comando da pergunta, o rsync montou o caminho do arquivo local usando cmd_line_source + file_line
e copiou-o paracmd_line_dest + file_line