Могу ли я изменить каталог на диск 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 и разработчиков.


1

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

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

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

Ссылка


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.