Posso cambiare directory in un'unità Windows in Ubuntu Bash su WSL?


13

Sono un principiante super per Ubuntu e fondamentalmente ho bisogno di Ubuntu per un pacchetto Python. Vorrei eseguire un file Python per esempio e:/username/folder1/folder2/python.py. Ho provato tutti i metodi online e l'unica risposta è bash: cd./e: No such file or directory. Non sono sicuro che sia a causa delle finestre bash o virtualenv.

Quando uso bash su Ubuntu su Windows, lsdice VIRTUALENV_DIR. cd, dice /home/username. Il cd ..etc cambia un po 'la directory, ma non un'altra unità, né la cartella che vorrei trovasse.

Risposte:


22

WSL memorizza le unità Windows nella /mntcartella, con il nome dell'unità come sottocartella. Ad esempio, l' C:\unità sarà presente /mnt/c/per l'utilizzo.

Tenendo presente questo, è possibile passare alla cartella specifica in questo modo:

cd /mnt/e/username/folder1/folder2

1
Sicuro di voler cdun file? sembra avere cd /mnt/e/username/folder1/folder2/più senso
dufte

@dufte Buona cattura. Yay per copia-incolla!
Kaz Wolfe,

per Ubuntu 16.04, è all'interno della cartella / media
solfish

3

Si, puoi farlo. Ho usato shift+ tasto destro del mouse per ottenere "Apri Powershell qui" qualunque directory si desideri bash ed eseguire il comando 'bash', quindi eseguire come al solito divertiti. È come usare Ubuntu bash poiché usa gli stessi pacchetti Python in Windows Powershell dopo aver usato il comando 'bash'.

Nota: su Windows 10 l'ultimo aggiornamento potrebbe essere aprile 2018 con WSL e modalità sviluppatori abilitati.


1

In Windows Explorer, vai a e:/username/folder1/folder2/,

digitare bashe premere Enternella barra degli indirizzi, apparirà una bashfinestra con il percorso dentro e:/username/folder1/folder2/.

Questo funziona anche con comando cmd.

Riferimento


0

Puoi provare a fare questo: cd E:/username/folder1/folder2/ e poi corri python python.py. Funziona sempre nel mio caso su macchine Windows che eseguono bash.


0

con questo piccolo script puoi eseguire tutti i comandi dalla directory in cui si trova Powershell. Funziona solo se l'unità è già montata su / mnt / nel sottosistema. Non funziona con le risorse di rete.

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'"}

dopo averlo eseguito, puoi usarlo in questo modo:

tux vim test.txt
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.