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

Как мне остановить Git Bash, запрашивающего больше ввода?
При запуске ' rm-rf` можно ли исключить некоторые подкаталоги?
Файл не существует, но ls показывает ошибку " нет такого файла или каталога
Зачем использовать parens вместо backticks для выполнения команды "in situ"?
Как конвертировать специальные символы UTF-8 в Bash?
Как перезагрузить терминал в Ubuntu?
Что такое эквивалент 'ps-T PID' в AIX для Linux?
Как отключить трекпад / мышь через командную строку Mac OS X?
Mac OSX Mavericks-ZSH не может "Источник ~/.zshrc' слишком много открытых файлов
в bash: ошибка синтаксиса около неожиданной лексемы `-о'
Циклический перебор подкаталогов и выполнение команды в каждом из них
номер команды bash (#) эквивалентен в zsh
Что не так с моим сценарием bash, чтобы сохранить последние x-файлы и удалить остальные?
Windows Bash не откроется в 10-летнем обновлении
Можете ли вы префикс каждой строки, написанной с tee с текущей датой и временем?

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

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


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

C:UsersmyuserAppDataLocallxssrootNewfolder


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

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

5
задан t q
источник

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 2018-08-07 07:45:43
источник

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

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

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

2
отвечен Riz 2018-08-05 16:50:27
источник

инвертируйте свое мышление: Если вы хотите создавать файлы с помощью приложений и инструментов 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 2017-04-13 20:13:29
источник

Другие вопросы bash windows-10