Я использую Bash на Ubuntu на Windows. Я перехожу к папке, и оттуда я хотел бы открыть файл в программе Windows.

Например: после ввода

cd \mnt\c\Users\myusername\Desktop
notepad index.php

Я бы хотел, чтобы Блокнот в Windows открывал файл index.php со своего рабочего стола.

Это возможно? Если нет, то возможно ли создать программу, которая сделала бы это возможным? Как это сделать?

4 ответа4

1

На данный момент это невозможно, но это самая востребованная функция на UserVoice.

Реакция от Microsoft:

Мы слышали, что это обычный запрос, который мы будем изучать в будущих выпусках.

1

Это может быть возможно:

  1. Определите псевдоним или функцию в ~/.bash_aliases или ~/.bashrc для имени команды, такого как win или windows .

  2. Ввод нашей новой команды создаст текстовый файл в некоторой папке, доступной для Windows.

  3. Создайте пакетный скрипт, который работает в фоновом режиме. Этот скрипт будет выполнять команду в текстовом файле (аргументы нашей вновь созданной команды будут перенаправлять в этот файл) всякий раз, когда он будет создан, а затем удалять его.

У меня нет обновления, поэтому я не могу сейчас предоставить сценарии.

1

В настоящее время вы можете вызывать приложения Windows из WSL, как из сценариев Linux, так и из консоли.

  • Начиная с Windows 10 build 17063+, Linux и Windows могут совместно использовать переменные среды.
  • По умолчанию Windows совместно использует PATH . Если notepad находится в пути Windows, вы можете запустить его в Linux, вызвав программу из командной строки.
  • Вы можете контролировать, какие переменные являются общими для Windows и Linux . Существует переменная WSLENV которая определяет, как переменные используются совместно.

Обратите внимание, что изменение файлов linux из Windows может привести к ошибкам при обновлении разрешений и других метаданных. Права доступа к файлам из Linux хранятся в виде потоков (метаданных) в файлах NTFS. Программы Windows могут перезаписать (или повредить) эти данные, не заметив этого.

  • Microsoft рекомендует хранить общие файлы в файловой системе Windows и, например, создавать символические ссылки из Linux.
  • Вы можете проверить решения и обходные пути в отчете о проблеме WSL
0

Я не думаю, что это возможно.
Bash на Ubuntu в Windows не является командной строкой Windows, поэтому он не может распознавать команды Windows.
Попробуйте вместо этого nano index.php .

Если вам нужен графический интерфейс, вы можете установить и запустить XMing Server в Windows, export DISPLAY=localhost:0.0 и установить gedit. Таким образом, он может выполняться с графическим интерфейсом. Но это все равно не будет notepad.exe. Это невозможно, пока мы не сможем найти доступ к файлам подсистемы.

Другой способ - скопировать файл на диск C и получить к нему доступ из Windows. Для этого попробуйте что-то вроде cp index.php /mnt/c

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .