Можно ли подключить связанный путь к WSL?

Вы можете смонтировать общий ресурс CIFS/SMB в Linux:

mount -t cifs -o username=<username>,domain=<domain> //server/share /mount/directory

Для этого вам нужно исправить установленный пакет, в Ubuntu он называетсяcifs-utils

4
16.01.2021, 06:58
1 ответ

Хотя WSL не имеет автоматического или даже прямого доступа к substдискам, существуют способы их сопоставления. Здесь есть несколько путей, в зависимости от вашего точного рабочего процесса.

Главное помнить:

  • В Linux sudo mount --bind. /mnt/rпримерно эквивалентно subst R:.. Если вас устраивает просто эквивалент Linux, и вам не нужно обращаться к той же букве диска в Windows, то это может быть все, что вам нужно. Вы даже можете создать функцию substв bash, которая будет очень похожа на Windows.

  • Тем не менее, bind, вероятно, является излишним. Скорее всего, вам просто нужна символическая ссылка, например ln -s /mnt/c/Users/username ~/r. Для этого не требуется root, если у вас есть права доступа к целевому местоположению.

  • Для сопоставлений, которые вы создали в Windows с помощью subst, вы можете получить пути substituted в Linux, вызвав PowerShell, например:powershell.exe -c subst

  • Вы можете отфильтровать это до только сопоставления R :, используя grepи sed:powershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //"(, в случае, если есть несколько дисков / каталогов subst, найдите только диск R :, а затем удалите все перед путь к каталогу ).

  • PowerShell возвращает дополнительную новую строку ("\r" ), так что вы должны удалить ее чем-то вроде tr -d "\r".

  • Вы можете преобразовать путь Windows в эквивалентный путь Linux/WSL с помощью команды wslpath.

Соберите все вместе, и вы получите скрипт, который может превратить ваш R :в/mnt/r(или ~/r, если так удобнее):

rpath=$(powershell.exe -c "subst" | grep "^R" | sed "s/^R:\\\\: => //" | tr -d "\r")
sudo mount --bind $(wslpath "${rpath}") /mnt/r/

Или эквивалент с ln.

Конечно, вы захотите присвоить его функции, чтобы было легче повторять.

5
18.03.2021, 22:36

Теги

Похожие вопросы