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.


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!


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/



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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.