O cd 'Z:\Some\long\windows\path'
simples deve funcionar na verdade. Você pode querer ativar a opção nodosfilewarning
.
Eu trabalho em um ambiente Windows, mas prefiro usar bash no cygwin como meu shell. Para cd para um caminho longo eu sou dado em forma de windows eu digito:
cd $(cygpath -u 'Z:\Some\long\windows\path')
.. colando o caminho do Windows a partir da área de transferência. Como sou preguiçoso, tentei fazer um atalho assim:
#!/usr/bin/env bash
if [ -z "$1" ]; then
exit 0
else
TGT=$(cygpath -u $1)
cd $TGT
fi
exit 0
.. então percebi que o cd ocorre no shell em que meu script é executado, em vez de o que eu chamei de modo que não tenha o efeito desejado. Como faço isso funcionar?
Você pode defini-lo como um alias:
alias cd='cd $(cygpath -u "$1")'
Cole isso no seu arquivo .bashrc
ou onde quer que você tenha seus aliases, e você deve ser de ouro.
Caso contrário, você precisaria colocar o diretório com o caminho do seu script personalizado anteriormente em seu caminho, em vez do diretório com o comando cd real (acho que o cygwin define o caminho em .bash_profile
); o que provavelmente não funcionará, já que o cd é um shell embutido.