Почему, например, когда я создаю файл из Windows, я не вижу его в подсистеме Linux в Windows 10 (bash.exe)
Скриншот должен объяснить.
Папка: OMG был создан из Windows Explorer. Папка OMGBash была создана из подсистемы Linux bash.exe
Когда папка ИЛИ файл создается вне bash.exe, я никогда не вижу его, независимо от прав доступа и владельца.
Чтобы показать информацию, которую мне пришлось использовать Cygwin, чтобы показать права доступа к файлам, я также изменил разрешения, чтобы увидеть, появится ли папка. (Два командных окна внизу)
Снимок экрана, показывающий права доступа к папке, bash.exe и Cygwin:
Я пытаюсь переместить все свои скрипты Cygwin в подсистему Linux, но мне не хочется пересоздавать каждый файл, затем копировать и переносить с помощью bash, а затем переформатировать, а затем с помощью Dos2unix (очень длинный).
Нашел это на GitHub для подсистемы Linux:
копирование непосредственно в подсистему Linux из Windows не поддерживается, согласно обсуждению других заявок. Где-то в AppData есть каталог (я забыл, где), который содержит файлы для файловой системы WSL. Но если вы поместите туда новые файлы или измените существующие файлы, ваши изменения не будут правильно отражены в WSL.
Мое лучшее предположение состоит в том, что Linux должен хранить различные метаданные (и больше информации о кэшировании и т. Д., Поскольку его модель буферизации диска также отличается) относительно своих файлов, чем в Windows, и что в настоящее время это реализуется путем хранения главной копии структуры файловой системы Linux в какой-то базе данных и просто используя файловую систему Windows в качестве удобного BLOB-хранилища для этой базы данных.
Если вам действительно нужно сделать это, обходной путь - написать сценарий drag'n'drop .bat или что-то такое, что делает bash.exe -c "mv% 1 / home / $ USER /". (Вам придется проделать некоторую умную работу с sed и tr, возможно, чтобы перевести% 1 в правильный путь WSL.)
В качестве альтернативы - не могли бы вы поместить ваши файлы в каталог Windows и в WSL сделать «cd ~; ln -s / mnt / c / path / to / my / files», чтобы они оказались в вашем домашнем каталоге WSL?
cp -r --no-preserve=all
удалить предыдущие разрешения. Тем не менее, если вы хотите внести какие-либо серьезные изменения, вы не можете использовать приложение Windows для редактирования файла в LinuxSubSystem, вы должны отредактировать его в вашем каталоге Windows, а затем скопировать его. Теперь я знаю это, его работоспособность, НО у меня сложилось впечатление, что подсистема Linux была более встроенной / встроенной в Windows, чем изолированная ОС
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.