Czy mogę zmienić katalog na dysk Windows w Ubuntu Bash na WSL?

13

Jestem bardzo nowym użytkownikiem Ubuntu i zasadniczo potrzebuję Ubuntu do pakietu Python. Chciałbym uruchomić plik Python w powiedzmy e:/username/folder1/folder2/python.py. Wypróbowałem każdą metodę online, a jedyną odpowiedzią jest bash: cd./e: No such file or directory. Nie jestem pewien, czy dzieje się tak z powodu okien bash, czy virtualenv.

lsMówi, że kiedy używam bash na Ubuntu w systemie Windows VIRTUALENV_DIR. cd, mówi /home/username. cd ..Etc zmienia katalog trochę, ale nie inny napęd, ani folder chciałbym go znaleźć.

Stephanie
źródło

Odpowiedzi:

22

WSL przechowuje dyski Windows w /mntfolderze z nazwą dysku jako podfolderem. Na przykład Twój C:\dysk będzie dostępny, /mnt/c/abyś mógł z niego korzystać.

Mając to na uwadze, możesz zamienić się na określony folder w następujący sposób:

cd /mnt/e/username/folder1/folder2
Kaz Wolfe
źródło
1
Na pewno chcesz do cdpliku? wygląda cd /mnt/e/username/folder1/folder2/bardziej sensownie
dufte
@dufte Good catch. Tak, kopiuj-wklej!
Kaz Wolfe
dla Ubuntu 16.04 znajduje się w folderze / media
solfish
3

Tak, możesz to zrobić. Użyłem shift+ kliknięcie prawym przyciskiem myszy, aby uzyskać „Otwórz Powershell tutaj” w dowolnym katalogu, który chcesz bash i uruchom polecenie „bash”, a następnie uruchom jak zwykle. Jest to to samo, co używanie Ubuntu bash, ponieważ używa on tych samych pakietów Python w Windows Powershell po użyciu polecenia „bash”.

Uwaga: w najnowszej aktualizacji systemu Windows 10 może kwiecień 2018 r. Z włączonym trybem WSL i programistycznym.

Sarang
źródło
1

W Eksploratorze Windows przejdź do e:/username/folder1/folder2/,

wpisz bashi naciśnij Enterna pasku adresu, pojawi się bashokno z ścieżką do e:/username/folder1/folder2/.

Działa to również z poleceniem cmd.

Odniesienie

Animeta
źródło
0

Możesz spróbować to zrobić: cd E:/username/folder1/folder2/ a następnie uruchomić python python.py. Zawsze działa w moim przypadku na komputerze z systemem Windows, na którym działa bash.

Mohit Singh
źródło
0

za pomocą tego małego skryptu możesz wykonać każdą komendę z katalogu, w którym aktualnie znajduje się Powershell. Działa to tylko wtedy, gdy dysk jest już zamontowany w / mnt / w podsystemie. Nie działa z zasobami sieciowymi.

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

po wykonaniu możesz użyć go w następujący sposób:

tux vim test.txt
pt1997
źródło