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.