Eu uso o git bash em uma máquina Windows: versão 2.7.2 (versão de 32 bits) do Git for Windows criada em 23-02-2016, disponível em https://git-scm.com .
No bash, posso copiar um diretório de /c/
para /e/
(um pen drive USB). No entanto, eu recebo erros quando tento usar rsync
. Tentei adicionar cygdrive
aos nomes de diretório, mas isso não funcionou. Também tentei adicionar -e
(apenas para ver o que aconteceria) que também não funcionava.
Mencionei que o comando copy funciona porque é estranho ver a unidade de uma maneira, mas não de outra maneira.
Obrigado e, por favor, comente se você fez um voto negativo para me ajudar a melhorar a pergunta.
Informações e pesquisas adicionais:
Erro 255
Em algum momento, acredito que estava recebendo exatamente o mesmo erro (255), o que me levou a este post. No entanto, a solução aqui está relacionada a cygwin
, e não ao git bash.
/programming/16969119/dotcloud-push-on-cygwin-fails-with-rsync-error-unexplained-error-code-255
Vagrant e rsync
Há muita boa dissucação sobre a mecânica de rsync
, especialmente de mitchellh
. No entanto, eu não tinha certeza de quais componentes eles referenciam estão presentes na minha instalação ou de como saber. Fiz uma pergunta separada neste site sobre esse problema. fonte: https://github.com/mitchellh/vagrant/issues/3236
Listando unidades em ambientes Linux emulados
source: http://mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html
Quando cat /etc/fstab
eu obtenho o seguinte:
$ cat /etc/fstab
# For a description of the file format, see the Users Guide
# http://cygwin.com/cygwin-ug-net/using.html#mount-table
# DO NOT REMOVE NEXT LINE. It remove cygdrive prefix from path
none / cygdrive binary,posix=0,noacl,user 0 0
none /tmp usertemp binary,posix=0,noacl 0 0
Penso que indica que há um volume nomeado cygdrive
, no entanto, não encontrei nenhum comando que acesse com êxito esse nome.
Possível pergunta duplicada:
@kenorb sugeriu que esta pergunta é uma duplicata do Por que o cwRsync não funciona no Windows? .
Não me lembro de ter visto este post ontem, mas este se parece mais com o meu. Ainda acho que é diferente porque esta pergunta foi publicada em 2011 e esta versão rsync
é de 2016. A versão anterior que eu estava usando ontem de manhã (que foi instalada em 2015) deu um erro diferente e me levou a atualizar minha versão do git / git bash.
Se essa pergunta for uma duplicata, não há (a partir de agora) nenhuma resposta aceita e a resposta principal não funcionará para mim.
Em geral, toda essa pesquisa me levou a acreditar que houve vários problemas rsync
nas portas do Windows e que esse é apenas o mais atual.
Eu acho que o problema pode ser resolvido especificando a unidade de maneira diferente ... mas não sei o que funcionaria. Eu tentei usar o nome da unidade, letra da unidade, sintaxe de barra invertida de dois pontos do Windows. Obviamente, não funcionou, e no final estou apenas supondo.
rsync no msysgit
Em 18/10/11, Werner BEROUX disse
É possível escapar para passar "/ c / Folder" como argumento para um aplicativo? O Git transforma isso em "C: \ Folder" por padrão e parece que não posso evitá-lo, mesmo usando métodos de escape comuns. https://groups.google.com/forum/#!topic/msysgit/J1hvt9Ave8g
Não tenho certeza se isso está relacionado, acho que eles estão tentando usar o rsync dentro de um comando git, mas é interessante que estejam tendo problemas com os nomes dos caminhos. Gostaria de saber se esses erros causados pelo caminho sendo traduzido para incluir um :
?
Códigos de erro 12 e 255 (editar em 21 de março de 2016)
Como alguém (@davidpostill) está dizendo que isso também é uma cópia, pensei em tentar as respostas / comentários na outra pergunta novamente.
As respostas e comentários mais votados da outra pergunta ainda não funcionaram para mim, o que me leva de volta à conclusão de que este é um problema diferente.
Aqui estão os resultados de tentar o rsync a partir do pen drive, conforme sugerido no comentário final da resposta mais votada na outra pergunta :
Primeiro, tentei usar /c/
, que é a maneira de referenciar unidades em outros comandos no Bash for Windows.
user@computer MINGW32 /e
$ rsync -trd /c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
Eu recebi o mesmo erro com o /cygwin
prefixo:
user@computer MINGW32 /e
$ rsync -trd /cygwin/c/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
Tentei vários tipos de adição c:
, mas como foi apontado no passado, os dois pontos rsync
acham que é uma conexão remota e, portanto, isso falha com o erro 255.
user@computer MINGW32 /e
$ rsync -trd /c:/examp/ .
ssh: Could not resolve hostname c: Name or service not known
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]
rsync -trd c:/examp/ e:/
?mysys2
pode ajudar, mas hesito em seguir estas etapas. Posso viver semrsync
, mas não posso me dar ao luxo de quebrar ogit
github.com/git-for-windows/git/wiki/Building-msys2-runtimeRespostas:
Dois anos depois, encontrei uma resposta que parece funcionar no meu computador mais recente (Windows 10, 64 bits).
rsync
partir de futureware.at *C:\rsync-3.1.2-2-x86_64.pkg
* Não sei quem está por trás do futureware.at, preferiria vincular a uma fonte mais primária.
Também publiquei a resposta aqui em resposta a uma pergunta mais geral, porque não conseguia me lembrar onde estava essa pergunta na época.
fonte
Em http://repo.msys2.org/msys/x86_64/, baixe os seguintes pacotes:
Descompactar cada um com
tar -xf
, em seguida, a partir deusr/bin
cópiarsync.exe
,msys-2.0.dll
,msys-z.dll
emsys-iconv-2.dll
para o diretório de onde você deseja executar o rsync. Teste comrsync.exe -h
.fonte