¿Puedo cambiar el directorio a una unidad de Windows en Ubuntu Bash en WSL?

13

Soy un super novato para Ubuntu y básicamente necesito Ubuntu para un paquete de Python. Me gustaría ejecutar un archivo Python en say e:/username/folder1/folder2/python.py. Probé todos los métodos en línea y la única respuesta es bash: cd./e: No such file or directory. No estoy seguro de si se debe a las ventanas bash o virtualenv.

Cuando uso bash en Ubuntu en Windows, lsdice VIRTUALENV_DIR. cd, Se dice /home/username. El cd ..etc cambia un poco el directorio, pero no otra unidad, ni la carpeta que me gustaría encontrar.

Stephanie
fuente

Respuestas:

22

WSL almacena sus unidades de Windows en la /mntcarpeta, con el nombre de la unidad como una subcarpeta. Por ejemplo, su C:\unidad estará presente /mnt/c/para que la use.

Teniendo esto en cuenta, puede cambiar a su carpeta específica de esta manera:

cd /mnt/e/username/folder1/folder2
Kaz Wolfe
fuente
1
¿Seguro que quieres cdun archivo? parece tener cd /mnt/e/username/folder1/folder2/más sentido
dufte
@dufte Buena captura. Yay para copiar y pegar!
Kaz Wolfe
para ubuntu 16.04, está dentro de la carpeta / media
solfish
3

Si tu puedes hacerlo. Usé shift+ clic con el botón derecho para obtener "Abrir Powershell aquí" en cualquier directorio que desee bash y ejecutar el comando 'bash', luego ejecutar como de costumbre disfrutar. Esto es lo mismo que usar Ubuntu bash, ya que usa los mismos paquetes de Python en Windows Powershell después de usar el comando 'bash'.

Nota: en Windows 10, la última actualización puede ser abril de 2018 con WSL y el modo de desarrolladores habilitado.

Sarang
fuente
1

En Windows Explorer, navegue a e:/username/folder1/folder2/,

escriba bashy presione Enteren la barra de direcciones, aparecerá una bashventana con la ruta de acceso e:/username/folder1/folder2/.

Esto también funciona con comando cmd.

Referencia

Animeta
fuente
0

Puede intentar hacer esto: cd E:/username/folder1/folder2/ y luego ejecutar python python.py. Siempre funciona en mi caso en una máquina con Windows que ejecuta bash.

Mohit Singh
fuente
0

con este pequeño script puede ejecutar cada comando desde el directorio en el que se encuentra actualmente su Powershell. Solo funciona si la unidad ya está montada en / mnt / en el subsistema. No funciona con recursos de red.

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

después de haberlo ejecutado, puede usarlo así:

tux vim test.txt
pt1997
fuente