2017-03-03 92 views
11

Mam włączony tryb programisty i zainstalowałem Bash on Ubuntu on Windows.Kopiowanie plików z systemu Windows do podsystemu Ubuntu

Mój katalog domowy można znaleźć pod %localappdata%\Lxss\home\<ubuntu.username>\, i stworzyli podkatalog o nazwie Obrazy takie, że pełna ścieżka powinna być

na oknach: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

na bash: /home/<ubuntu.username>/Pictures

jeśli mogę utworzyć plik z bash za pomocą polecenia touch hello.txt mogę swobodnie zobaczyć ten plik w interfejsie systemu Windows i skopiować go na mój pulpit. Jeśli jednak utworzę nowy plik tekstowy z interfejsu użytkownika systemu Windows i zapiszę go w C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, nawet jeśli ponownie uruchomię bash lub okna, plik nie będzie widoczny, gdy wykonam ls -l.

Dlaczego nie można wyświetlić plików utworzonych po stronie systemu Windows w jego katalogu osobistym?

EDIT Korzystanie /mnt/c nie jest rozwiązanie, próbuję zrozumieć dlaczegonie widzieć te pliki, a jeśli nie ma lekarstwa na to tak, że będzie w stanie zobaczyć UI utworzone pliki, a niż próba użycia terminala do kopiowania i wklejania lub przenoszenia plików.

+2

ciekawe! Zgaduję - i to * jest * tylko zgadywaniem - jest to, że podsystem Linuksowy śledzi własne pliki i nigdy nie patrzy, czy jakiekolwiek inne zostały dodane. To miałoby jakiś sens, ponieważ w przeciwnym razie trudno byłoby dać semantykę systemu plików wirtualnych UNIX dla takich rzeczy jak usuwanie plików i rozróżnianie wielkości liter. Podejrzewam, że przekonasz się, że jeśli utworzysz 'hello.txt' i' HELLO.TXT' z Bash, jeden z plików będzie pod inną nazwą, gdy spojrzysz na niego w systemie Windows. –

+0

Stack Overflow to strona z pytaniami dotyczącymi programowania i programowania. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym rozwiązaniem będzie [Super użytkownik] (http://superuser.com/) lub [Unix i Linux Stack Exchange] (http://unix.stackexchange.com/). Zobacz także [Gdzie mogę publikować pytania dotyczące Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

+0

Jak przypuszczam @HarryJohnston, nazwy są różne. Zarówno długie, jak i krótkie. Ale tylko w tym przypadku, nawet krótkie (!) –

Odpowiedz

7

Powinieneś być w stanie uzyskać dostęp do systemu Windows w katalogu /mnt. Na przykład wewnątrz bash, użyj tego, aby przejść do katalogu ze zdjęciami:

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

Mam nadzieję, że to pomoże!

+0

Wierzę, że źle zrozumiałeś. Mam plik JPG na moim pulpicie, skopiowałem go z interfejsem do katalogu podsystemów bash. Próbuję zrozumieć, dlaczego bash nie może zobaczyć tych zdjęć, gdy są w swoim katalogu domowym. To jest podstawowe zachowanie cygwin, przeciąganie i upuszczanie lub kopiowanie wklejanych plików bez polegania na poleceniach linuxowych do wykonania zadania. – JordanGS

+0

jesteś prawdopodobnie w niewłaściwym folderze. – pudility

+0

Podsystem Linux nie ma takich samych kryteriów projektowania jak Cygwin. Nie można oczekiwać, że zachowają się podobnie. –

16

powinni mieć dostęp tylko pliki systemu Linux (znajdujący się w folderze) lxss wewnątrz WSL, NIE tworzyć/modyfikować pliki w lxss folderu w systemie Windows, jest to niebezpieczne i WSL nie będzie widać tych plików.

Jeśli chcesz, aby pliki mogły być współdzielone między WSL i Windows, umieść plik poza folderem lsxx. Dostęp do nich można uzyskać za pośrednictwem drvFS (/mnt), takich jak /mnt/c/Users/youusername/files w ramach WSL i modyfikować je w systemie Windows.

Szczegółowe informacje i dlaczego, patrz: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

+0

Zobacz także [Obsługa systemu plików WSL] (https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/). –