Dlaczego, na przykład, gdy tworzę plik z poziomu systemu Windows, nie mogę go zobaczyć pod systemem Linux w systemie Windows 10 (bash.exe)
Zrzut ekranu powinien wyjaśnić.
Folder: OMG został utworzony w Eksploratorze Windows. Folder OMGBash został stworzony z systemu Linux bash.exe
Kiedy folder LUB plik jest tworzony poza bash.exe, nigdy go nie widzę, bez względu na uprawnienia i własność.
Aby pokazać informacje, których musiałem użyć Cygwin do wyświetlenia uprawnień do plików, zmieniłem również uprawnienia, aby zobaczyć, czy folder się pojawi. (Dwa okna poleceń u dołu)
Zrzut ekranu przedstawiający uprawnienia do folderu, bash.exe i Cygwin:
Próbuję przenieść wszystkie moje skrypty Cygwin do podsystemu Linux, ale nie mam ochoty odtwarzać każdego pliku, potem muszę kopiować i wklejać za pomocą bash, a następnie formatować, a następnie używać Dos2unix (bardzo długi).
Znaleziono to w GitHub dla podsystemu Linux:
kopiowanie bezpośrednio do podsystemu Linux z systemu Windows nie jest obsługiwane, zgodnie z dyskusją na temat innych zgłoszeń. W AppData jest gdzieś katalog (nie pamiętam gdzie), który wydaje się zawierać pliki dla systemu plików WSL. Ale jeśli umieścisz tam nowe pliki lub zmodyfikujesz istniejące pliki, zmiany nie zostaną poprawnie odzwierciedlone w WSL.
Domyślam się, że Linux musi przechowywać różne metadane (i więcej informacji o buforowaniu itp., Ponieważ jego model buforowania dysku również jest inny) na temat swoich plików niż Windows, i że jest to obecnie realizowane przez przechowywanie głównej kopii struktury systemu plików Linux w jakiejś bazie danych i po prostu używając systemu plików Windows jako wygodnego magazynu BLOB dla tej bazy danych.
Jeśli naprawdę musisz to zrobić, obejściem może być napisanie skryptu przeciągnij i upuść .bat lub coś takiego, co powoduje, że bash.exe -c "mv% 1 / home / $ USER /". (Będziesz musiał wykonać sprytną pracę z sed i tr, prawdopodobnie, aby przetłumaczyć% 1 na prawidłową ścieżkę WSL.)
Alternatywnie - czy możesz umieścić swoje pliki w katalogu Windows i, w ramach WSL, wykonać polecenie „cd ~; ln -s / mnt / c / path / to / my / files”, aby wyglądały, jakby były w katalogu głównym WSL?
cp -r --no-preserve=all
usunąć poprzednie uprawnienia. Jeśli jednak chcesz dokonać ciężkich zmian, nie możesz użyć aplikacji systemu Windows do edycji pliku w systemie LinuxSubSystem, musisz go edytować w katalogu systemu Windows, a następnie skopiować. Teraz wiem, że jest to wykonalne, ALE miałem wrażenie, że Linux Sub System był bardziej natywny / zintegrowany z Windows niż izolowany system operacyjny
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.