Скопируйте файлы из Windows в подсистему Ubuntu

Я включил режим разработчика и установил Bash on Ubuntu on Windows.

Мой домашний каталог можно найти в разделе %localappdata%\Lxss\home\<ubuntu.username>\, я создал подкаталог с именем Pictures, так что полный путь должен быть

в окнах: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

на bash: /home/<ubuntu.username>/Pictures

если я создаю файл из bash с помощью команды touch hello.txt, я могу свободно видеть этот файл в пользовательском интерфейсе Windows и копировать его на рабочий стол. Однако, если я создаю новый текстовый файл из пользовательского интерфейса Windows и сохраняю его в C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, даже если я перезапущу bash или windows, файл не будет виден, когда я сделаю ls -l.

Почему bash не может видеть файлы, созданные со стороны Windows, в собственном домашнем каталоге?

EDIT Использование /mnt/c не является решением, я пытаюсь понять , почему он не видит эти файлы и если есть средство для этого, так что он сможет видеть созданные пользователем файлы, а не пытаться использовать терминал для копирования или вставки файлов.

Ответ 1

Вам нужно получить доступ только к файловой системе Linux (расположенной в папке lxss) внутри WSL, НЕ НЕ создавать/изменять любые файлы в папке lxss в Windows, это опасно, и WSL не увидит эти файлы.

Если вы хотите, чтобы файлы могли совместно использоваться WSL и Windows, поместите файл за пределы папки lsxx. Вы можете получить к ним доступ через drvFS (/mnt), например /mnt/c/Users/youusername/files в WSL, и изменить их в Windows.

Подробнее и почему: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

Ответ 2

Вы должны иметь доступ к вашей системе Windows в каталоге /mnt. Например, внутри bash используйте это, чтобы попасть в каталог изображений:

cd /mnt/c/Users/<ubuntu.username>/Pictures

Надеюсь, это поможет!