Copiar arquivos do Windows para o subsistema Ubuntu [fechado]

96

Habilitei o modo de desenvolvedor e instalei Bash on Ubuntu on Windows.

Meu diretório inicial pode ser encontrado em %localappdata%\Lxss\home\<ubuntu.username>\, eu criei um subdiretório chamado Imagens de modo que o caminho completo deve ser

nas janelas: C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures

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

Se eu criar um arquivo do bash usando o comando, touch hello.txtposso ver esse arquivo livremente na IU do Windows e copiá-lo para a minha área de trabalho. No entanto, se eu criar um novo arquivo de texto a partir da IU do Windows e salvá-lo C:\Users\<windows.username>\AppData\Local\lxss\home\<ubuntu.username>\Pictures, mesmo se eu reiniciar o bash ou o Windows, o arquivo não ficará visível quando eu fizer isso ls -l.

Por que o bash não consegue ver os arquivos criados do lado do Windows em seu próprio diretório inicial?

EDITAR Usar /mnt/cnão é uma solução, estou tentando entender por que ele não vê esses arquivos e se há um remédio para isso de modo que possa ver os arquivos criados pela IU, em vez de tentar usar o terminal para copiar colar ou mover arquivos.

JordanGS
fonte
2
Interessante! Meu palpite - e é apenas um palpite - é que o subsistema Linux mantém registro de seus próprios arquivos e nunca verifica se algum outro foi adicionado. Isso faria sentido, porque do contrário seria difícil dar ao sistema de arquivos virtual a semântica do UNIX para coisas como exclusão de arquivos e distinção entre maiúsculas e minúsculas. Eu suspeito que você vai descobrir que se você criar hello.txte HELLO.TXTde Bash, um dos arquivos estará sob um nome diferente quando você olha para ele no Windows.
Harry Johnston
Stack Overflow é um site para questões de programação e desenvolvimento. Esta questão parece estar fora do tópico porque não é sobre programação ou desenvolvimento. Veja sobre quais tópicos posso perguntar aqui na Central de Ajuda. Talvez Superusuário ou Unix e Linux Stack Exchange sejam um lugar melhor para perguntar. Veja também Onde eu posto perguntas sobre Dev Ops?
jww
Como @HarryJohnston supôs, os nomes são diferentes. Longo e curto. Mas apenas no caso, mesmo os mais curtos (!)
Serhii Kheilyk
Estou votando para fechar esta questão como fora do tópico porque ela está relacionada à comunidade ask-ubuntu.
OmG
2
@jpaugh eu sei. Mas, esta questão é justificada para perguntar-circunstâncias Ubuntu e não fora do tópico.
OmG de

Respostas:

142

Você deve conseguir acessar o sistema Windows no /mntdiretório. Por exemplo, dentro do bash, use isso para chegar ao diretório de imagens:

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

Espero que isto ajude!

zoecarver
fonte
Eu acredito que você entendeu mal. Eu tenho um JPG no meu desktop, copiei-o com a IU para o diretório do subsistema bash. Estou tentando entender por que o bash não pode ver essas imagens quando elas estão em seu diretório inicial. Este é o comportamento básico do cygwin, arraste e solte ou copie e cole arquivos sem depender dos comandos do Linux para fazer o trabalho.
JordanGS,
você provavelmente está na pasta errada.
zoecarver
O subsistema Linux não tem os mesmos critérios de design do Cygwin. Você não pode necessariamente esperar que eles se comportem de maneira semelhante.
Harry Johnston
funcionou para mim, embora ubuntu.usernamenão seja necessário o nome de usuário do windows .. pelo menos não é o caso para mim;)
user2804070
1
Te amo por isso.
Gubatron
53

Você só deve acessar o sistema de arquivos do Linux (aqueles localizados na pasta lxss) de dentro do WSL ; NÃO crie / modifique nenhum arquivo na pasta lxss do Windows - é perigoso e o WSL não verá esses arquivos.

Os arquivos podem ser compartilhados entre WSL e Windows; coloque o arquivo fora da pasta lxss. Você pode acessá-los via drvFS ( /mnt) como /mnt/c/Users/yourusername/filesno WSL. Esses arquivos permanecem sincronizados entre WSL e Windows.

Para obter detalhes e por quê, consulte: https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/

Reker
fonte
Consulte também Suporte ao sistema de arquivos WSL .
Harry Johnston de
1
Em WSL File System Support, ele descreve porque o comportamento está acontecendo: a "tradução" do arquivo é feita no subsistema lsxx (no lado do Linux) apenas.
Chris Buck de
Em uma VM linux, posso usar SFTP para transferir arquivos, o que devo usar para transferir arquivos CORRETAMENTE do Windows para o subsistema linux? isso não fornece uma solução.
Ambroise Rabier
1
@AmbroiseRabier Na versão mais recente do WSL, use SFTP, arquivo tar ou protocolo 9p integrado.
reker em