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