Posso alterar o diretório para uma unidade Windows no Ubuntu Bash na WSL?

13

Eu sou um super novato no Ubuntu e basicamente preciso do Ubuntu para um pacote Python. Eu gostaria de executar um arquivo Python no digamos e:/username/folder1/folder2/python.py. Eu tentei todos os métodos online e a única resposta é bash: cd./e: No such file or directory. Não tenho certeza se é por causa das janelas bash ou virtualenv.

Quando eu uso o bash no Ubuntu no Windows ls, ele diz VIRTUALENV_DIR. cd, diz /home/username. O cd ..etc altera o diretório um pouco, mas não outra unidade, nem a pasta que eu gostaria que encontrasse.

Stephanie
fonte

Respostas:

22

A WSL armazena suas unidades do Windows na /mntpasta, com o nome da unidade como uma subpasta. Por exemplo, sua C:\unidade estará presente em /mnt/c/para você usar.

Tendo isso em mente, você pode trocar para sua pasta específica da seguinte maneira:

cd /mnt/e/username/folder1/folder2
Kaz Wolfe
fonte
1
Tem certeza de que deseja cdum arquivo? parece cd /mnt/e/username/folder1/folder2/faz mais sentido
dufte 30/09/16
@dufte Boa captura. Yay para copiar e colar!
Kaz Wolfe
para o Ubuntu 16.04, ele está dentro de / media pasta
solfish
3

Sim, você pode fazer isso. Eu usei shift+ clique com o botão direito para obter o "Open Powershell here", qualquer diretório que você deseja bash e executar o comando 'bash', depois execute como sempre. É o mesmo que usar o Ubuntu bash, pois usa os mesmos pacotes Python no Windows Powershell depois de usar o comando 'bash'.

Nota: Na atualização mais recente do Windows 10, talvez em abril de 2018 com o modo WSL e desenvolvedores ativado.

Sarang
fonte
1

No Windows Explorer, navegue para e:/username/folder1/folder2/,

digite bashe pressione Enterna barra de endereço; uma bashjanela com o caminho e:/username/folder1/folder2/será exibido.

Isso também funciona com o comando cmd.

Referência

Animeta
fonte
0

Você pode tentar fazer isso: cd E:/username/folder1/folder2/ e depois executar python python.py. Sempre funciona no meu caso na máquina Windows executando o bash.

Mohit Singh
fonte
0

com esse pequeno script, você pode executar todos os comandos do diretório em que o Powershell está atualmente. Ele só funciona se a unidade já estiver montada em / mnt / no subsistema. Não funciona com recursos de rede.

function tux {$dl = (pwd).Path | wsl eval "cut -c 1 | tr 'A-Z' 'a-z'"; $wd = (pwd).Path | wsl eval "cut -d : -f 2 | tr '\\' '/' 2> /dev/null" ; wsl eval "cd '/mnt/$dl$wd' && eval '$args'"}

depois de executá-lo, você pode usá-lo assim:

tux vim test.txt
pt1997
fonte