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

Я супер новичок в 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 .. etc немного меняет каталог, но не другой диск и не папку, которую я хотел бы найти.

8 ответов

Решение

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

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

cd /mnt/e/username/folder1/folder2

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

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

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

Ссылка

Утилита, которая поставляется как с WSL, так и с WSL2, может преобразовывать пути Windows в пути WSL (или преобразовывать пути WSL в пути Windows). Например, команда wslpath 'E:\username\folder1\folder2'дает вам путь в WSL /mnt/e/username/folder1/folder2.

С помощью wslpathутилиты, я определяю следующую функцию в моем ~/.bashrcчтобы быстро перейти к путям Windows.

cdw() { cd `wslpath "$1"`; }

С помощью этой определяемой пользователем функции я могу легко cdк E:\username\folder1\folder2просто набрав

cdw 'E:\username\folder1\folder2'

Не забудьте заключить путь Windows в одинарные кавычки, если он содержит обратную косую черту.

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

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

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

Чтобы изменить каталог с wsl на файловую систему Windows:

      cd /mnt/c/

Чтобы изменить каталог с Windows (PowerShell) на файловую систему wsl:

      cd Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\Ubuntu\

С помощью этого небольшого сценария вы можете выполнить каждую команду из каталога, в котором находится ваш 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

Для подсистемы в windows; в основном перейдите в свой домашний каталог с помощью cd ~

а затем перейдите к пути /mnt с помощью cd /mnt

в конце концов запустить lsкоманду и проверьте имена дисков.

Ну вот.

Другие вопросы по тегам