Windows 10 Ubuntu-создание папки из windows, то доступ из Bash

Я запускаю Ubuntu из Windows.


Когда я создаю папку из windows, называется newFolder в корневом каталоге

C:UsersmyuserAppDataLocallxssrootNewfolder


тогда от Баша, когда я бегу ls Я не вижу только что созданную папку.

как я могу это исправить, чтобы я мог создавать папки и файлы из windows, а затем получать к ним доступ из Bash?

20
задан t q
30.01.2023 1:03 Количество просмотров материала 2868
Распечатать страницу

3 ответа

файлы Linux в корневой файловой системе WSL создаются специально с разрешениями POSIX, хранящимися в расширенных атрибутах NTFS. Вы можете увидеть это, запустив fsutil file layout lxss\root и уведомления $EA поток там. Если вы создаете файлы непосредственно из Windows, вы будете испортить вещи, потому что win32 apps ничего не знает о Linux и его метаданных файлов

проблема возникает, когда, например, вы используете приложение/инструмент Windows, чтобы открыть, создать и/или изменить файл под вашим корень дистрибутива: поскольку файл был создан с помощью инструмента Windows, файл не будет иметь никакого Linux файл метаданные (например, права доступа, владелец, доступ/обновление метки времени и т. д.). Таким образом, для Linux, (которая получает только метаданные файла Linux),файл может быть пустым, возможно, даже не существует или может иметь некоторые метаданные, но эти метаданные могут не отражать детали файла, что привело к повреждению содержимого файла.

поэтому госпожа имеет смело предупреждал, что

ни при каких обстоятельствах не создавайте и/или не изменяйте файлы Linux с помощью приложений, инструментов, сценариев, консолей и т. д.

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

не изменяйте файлы Linux с помощью приложений и инструментов Windows

файлы, отношение к Linux должно быть создано только из WSL. Если вы хотите создать файлы, которые доступны обеим системам, то создайте их вне корня WSL и доступ из WSL через точку монтирования в /mnt как /mnt/drive/path

если вы хотите создавать файлы на файловых системах Windows, но сохранить чувствительность к регистру, то используйте

fsutil file setCaseSensitiveInfo <directory name> enable

флаг также можно проверить с помощью fsutil file queryCaseSensitiveInfo <directory name>

2
отвечен phuclv 2023-01-31 08:51

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

вы можете получить доступ к дискам Windows на /mnt. Если вы делаете ls /mnt вы увидите все ваши диски. Так как /MNT/C-это путь диск C. Аналогично /mnt/c/Users/username/Desktop может дать вам доступ к вашему рабочему столу в Bash.

Так что просто добраться до нужного пути с помощью Bash и доступа к файлам и папкам windows. Для получения более подробной информации о создании быстрого доступа к файлам windows, используйте символические ссылки, подробности может быть найти здесь

2
отвечен Riz 2023-01-31 11:08

инвертируйте свое мышление: Если вы хотите создавать файлы с помощью приложений и инструментов Windows и получать к ним доступ из Bash, а затем создавать эти файлы и т. д. в вашей файловой системе Windows и доступа / скопировать их из Bash.

вот пример создания файла в PowerShell, затем вызов Bash для копирования созданного файла в домашнюю папку, а затем вызов bash для записи содержимого файла:

PS C:\dev\temp> Set-Content ./hello.txt -Value "Hello, World!" -Encoding ASCII
PS C:\dev\temp> cat .\hello.txt
Hello, World!
PS C:\dev\temp> bash -c "cp /mnt/c/dev/temp/hello.txt ~/"
PS C:\dev\temp> bash -c "cat /mnt/c/dev/temp/hello.txt"
Hello, World!

HTH.

1
отвечен Richard Turner 2023-01-31 13:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх