Copia file da Windows al sottosistema Ubuntu [chiuso]


96

Ho abilitato la modalità sviluppatore e installato Bash on Ubuntu on Windows.

La mia directory home può essere trovata sotto %localappdata%\Lxss\home\<ubuntu.username>\, ho creato una sottodirectory chiamata Pictures in modo tale che il percorso completo dovrebbe essere

Su Windows: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

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

se creo un file da bash usando il comando touch hello.txtposso vedere liberamente questo file nell'interfaccia utente di Windows e copiarlo sul mio desktop. Tuttavia, se creo un nuovo file di testo dall'interfaccia utente di Windows e lo salvo C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, anche se riavvio bash o Windows, il file non è visibile quando lo faccio ls -l.

Perché bash non può vedere i file creati dal lato Windows nella propria directory home?

EDIT L' uso /mnt/cnon è una soluzione, sto cercando di capire perché non vede quei file e se c'è un rimedio a questo in modo che possa vedere i file creati dall'interfaccia utente, piuttosto che provare a usare il terminale per copiare- incolla o sposta i file.


2
Interessante! La mia ipotesi - ed è solo una supposizione - è che il sottosistema Linux tenga traccia dei propri file e non cerchi mai di vedere se ne sono stati aggiunti altri. Questo avrebbe un senso, perché altrimenti sarebbe difficile dare al file system virtuale la semantica UNIX per cose come l'eliminazione di file e la distinzione tra maiuscole e minuscole. Sospetto che scoprirai che se crei hello.txte HELLO.TXTda Bash, uno dei file avrà un nome diverso quando lo guardi in Windows.
Harry Johnston

Stack Overflow è un sito per domande di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non si tratta di programmazione o sviluppo. Vedi Quali argomenti posso chiedere qui nel Centro assistenza. Forse Super User o Unix e Linux Stack Exchange sarebbero un posto migliore per chiedere. Vedi anche Dove posso pubblicare domande su Dev Ops?
jww

Come supponeva @HarryJohnston, i nomi sono diversi. Sia lungo che corto. Ma solo nel caso, anche quelli brevi (!)
Serhii Kheilyk

Voto per chiudere questa domanda come fuori tema perché è correlata alla comunità ask-ubuntu.
OmG

2
@jpaugh lo so. Ma questa domanda è giustificata per chiedere circostanze a Ubuntu e non fuori tema.
OmG

Risposte:


142

Dovresti essere in grado di accedere al tuo sistema Windows dalla /mntdirectory. Ad esempio all'interno di bash, usa questo per accedere alla directory delle immagini:

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

Spero che questo ti aiuti!


Credo che tu abbia frainteso. Ho un JPG sul desktop, l'ho copiato con l'interfaccia utente nella directory del sottosistema bash. Sto cercando di capire perché bash non può vedere quelle immagini quando sono nella sua home directory. Questo è il comportamento di base di Cygwin, trascina e rilascia o copia e incolla i file senza fare affidamento sui comandi di Linux per eseguire il lavoro.
JordanGS

probabilmente ti trovi nella cartella sbagliata.
Zoecarver

Il sottosistema Linux non ha gli stessi criteri di progettazione di Cygwin. Non puoi necessariamente aspettarti che si comportino in modo simile.
Harry Johnston

ha funzionato per me, anche se ubuntu.usernamenon è necessario il nome utente per Windows .. almeno non è il caso per me;)
user2804070

1
Ti amo per questo.
Gubatron

53

È necessario accedere solo al file system Linux (quelli situati nella cartella lxss) dall'interno di WSL ; NON creare / modificare alcun file nella cartella lxss in Windows: è pericoloso e WSL non vedrà questi file.

I file possono essere condivisi tra WSL e Windows, però; mettere il file fuori dalla cartella lxss. È possibile accedervi tramite drvFS ( /mnt) come /mnt/c/Users/yourusername/filesall'interno di WSL. Questi file rimangono sincronizzati tra WSL e Windows.

Per i dettagli e il motivo, vedere: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/



1
In WSL File System Support descrive il motivo per cui si sta verificando il comportamento: la "traduzione" del file viene eseguita solo nel sottosistema lsxx (sul lato Linux).
Chris Buck

Su una VM Linux, posso usare SFTP per trasferire file, cosa devo usare per trasferire i file CORRETTAMENTE da Window al sottosistema Linux? questo non fornisce una soluzione.
Ambroise Rabier

1
@AmbroiseRabier Nell'ultima versione di WSL, usa SFTP, file tar o protocollo 9p integrato.
reker
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.