A maneira correta de fazer isso é usar o comando mount :
mount --change-cygdrive-prefix /c
ou no seu caso, restaure o prefixo /cygdrive
padrão ...
Estou tendo um problema estranho com o cygwin agindo de forma inconsistente entre as instalações, especificamente o scp. Eu tenho c: \ cygwin \ bin no meu Windows PATH em ambos os casos. Quando eu executo o seguinte comando de um Prompt de Comando do Windows , no entanto, obtenho resultados muito diferentes entre as duas instalações:
scp /cygdrive/c/something.txt User@server:${HOME}/something.txt
Na única máquina, ele transfere o arquivo muito bem, mas na outra máquina recebo um erro:
/cygdrive/c/something.txt: No such file or directory
No entanto, se eu executar o comando desta maneira na máquina que me deu o erro, ele será transferido bem:
scp /c/something.txt User@server:${HOME}/something.txt
Por que as diferenças? Existe algo que eu preciso configurar dentro do cygwin para fazer isso funcionar com / cygdrive / c?
UPDATE: Aqui está algo mais interessante. Se eu faço ls /c
de um prompt de comando do Windows, recebo o que você esperaria, como lista de tudo em C :. No entanto, ls /cygdrive/c
diz que não existe. Executar esses comandos a partir do cygwin bash produz exatamente o comportamento oposto.
A maneira correta de fazer isso é usar o comando mount :
mount --change-cygdrive-prefix /c
ou no seu caso, restaure o prefixo /cygdrive
padrão ...
O problema foi a minha precedência no PATH. Foi
PATH=%PATH%;C:\cygwin\bin
mas precisava ser
PATH=C:\cygwin\bin;%PATH%
Depois de corrigir o PATH /cygdrive/c
resolvido como esperado.
Eu encontrei este problema depois que instalei o Git, adicionei o bin ao meu PATH, instalei o Cygwin e executei o ssh-host-config para configurar um serviço do Windows para o sshd. O problema parece ser que a maneira como o ssh-host-config registra o serviço faz com que o sshd invoque o executável bash (ou scp, ou comando fornecido pelo ssh) do Git em vez do Cygwin no processo de configuração de uma conexão scp. Para corrigir isso, eu removi o serviço como instalado pelo ssh-host-config. Do Cygwin bash, executei cygrunsrv -R sshd
. Então eu registrei novamente o serviço com uma substituição de variável PATH,
cygrunsrv -I sshd -d "CYGWIN sshd" -p "/usr/sbin/sshd" \
--env "PATH=/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:$PATH" \
-a "-D" -u <priv_user> -w <password>
onde priv_user é provavelmente cyg_server. Consulte o link .