Могу ли я изменить каталог на диск Windows в Ubuntu Bash на WSL?

13

Я супер новичок в Ubuntu и в основном нуждаюсь в Ubuntu для пакета Python. Я хотел бы запустить файл Python в скажем e:/username/folder1/folder2/python.py. Я попробовал каждый метод онлайн, и единственный ответ bash: cd./e: No such file or directory. Я не уверен, является ли это из-за окон bash или virtualenv.

Когда я использую bash в Ubuntu в Windows ls, он говорит VIRTUALENV_DIR. cdэто говорит /home/username. cd ..И т.д. изменяет каталог немного, но не другой диск, ни папку , я хотел бы его найти.

Стефания
источник

Ответы:

22

WSL хранит ваши диски Windows в /mntпапке с именем диска в качестве подпапки. Например, ваш C:\диск будет доступен /mnt/c/для использования.

Имея это в виду, вы можете перейти к вашей конкретной папке следующим образом:

cd /mnt/e/username/folder1/folder2
Каз Вулф
источник
1
Конечно, вы хотите, чтобы cdфайл? похоже, cd /mnt/e/username/folder1/folder2/имеет больше смысла
dufte
@dufte Хороший улов. Yay для копирования-вставки!
Каз Вулф
для Ubuntu 16.04, он находится внутри папки / media
solfish
3

Да, вы можете сделать это. Я использовал shift+ правый клик, чтобы получить «Открыть Powershell здесь» в любом каталоге, который вы хотите bash, и запустить команду «bash», а затем запустить как обычно. Это то же самое, что и использование Ubuntu bash, поскольку оно использует те же пакеты Python в Windows Powershell после использования команды bash.

Примечание. В Windows 10 последнее обновление возможно в апреле 2018 года с включенным режимом WSL и разработчиков.

Sarang
источник
1

В проводнике Windows перейдите к e:/username/folder1/folder2/,

введите bashи нажмите Enterв адресной строке, появится bashокно с путем в e:/username/folder1/folder2/.

Это также работает с командой cmd.

Ссылка

Animeta
источник
0

Вы можете попробовать сделать это: cd E:/username/folder1/folder2/ и затем запустить python python.py. В моем случае это всегда работает на Windows-машине, на которой запущен bash.

Мохит Сингх
источник
0

с помощью этого небольшого сценария вы можете выполнить каждую команду из каталога, в котором находится ваш Powershell. Он работает, только если диск уже подключен к / mnt / в подсистеме. Это не работает с сетевыми ресурсами.

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

после того, как вы выполнили его, вы можете использовать его так:

tux vim test.txt
pt1997
источник