
Estou executando o Ubuntu no Windows.
Quando eu crio uma pasta do Windows chamada newFolder
no diretório raiz C:\Users\myuser\AppData\Local\lxss\root\Newfolder
e do Bash quando executo, ls
não vejo a nova pasta que acabou de ser criada.
Como posso corrigir isso para poder criar pastas e arquivos no Windows e acessá-los no Bash?
Responder1
Atualizar:
Desde o Windows 10 versão 1903 é possível acessar arquivos Linux a partir do Windows com a extensão \\wsl$\
. Então você pode executar explorer.exe .
a partir do bash ou entrar \\wsl$\
diretamente na barra de endereços do Explorer
VerO que há de novo no WSL no Windows 10 versão 1903?
Novamente ainda há o aviso de que vocêNÃO deve acessar seus arquivos Linux através da pasta AppData!
Para versões mais antigas do Windows 10, veja abaixo
Os arquivos Linux no sistema de arquivos raiz WSL são criados especialmente com permissões POSIX armazenadas em atributos estendidos NTFS. Você pode ver isso correndo fsutil file layout lxss\root
e percebendo o$EA
fluxolá. Se você criar os arquivos diretamente do Windows, você bagunçará as coisas porque os aplicativos win32 não sabem nada sobre o Linux e seus metadados de arquivos
O problema surge quando, por exemplo, você usa um aplicativo/ferramenta do Windows para abrir, criar e/ou modificar um arquivo na raiz da sua distribuição: Como o arquivo foi criado com uma ferramenta do Windows, o arquivo não terá nenhum metadado de arquivo do Linux (por exemplo, permissões, proprietário, carimbos de data e hora de acesso/atualização, etc.). Assim, para Linux, (que só recebe metadados de arquivos Linux),o arquivo pode ser relatado como vazio, pode nem existir ou pode ter alguns metadados, mas esses metadados podem não refletir os detalhes do arquivo, resultando na corrupção do conteúdo do arquivo.
Portanto, MS advertiu corajosamente que
NÃO, em NENHUMA circunstância, crie e/ou modifique arquivos do Linux usando aplicativos, ferramentas, scripts, consoles do Windows, etc.
Criar/alterar arquivos Linux a partir do Windows provavelmente resultará em corrupção de dados e/ou danificará seu ambiente Linux, exigindo que você desinstale e reinstale sua distribuição!
Não altere arquivos do Linux usando aplicativos e ferramentas do Windows
Arquivos relevantes apenas para Linux devem ser criados apenas a partir de WSL. Se você deseja criar arquivos acessíveis em ambos os sistemas, crie-osfora da raiz WSLe acesso do WSL através do ponto de montagem /mnt
como/mnt/drive/path
Se você deseja criar arquivos em sistemas de arquivos do Windows, mas mantém a distinção entre maiúsculas e minúsculas, use
fsutil file setCaseSensitiveInfo <directory name> enable
A bandeira também pode ser verificada comfsutil file queryCaseSensitiveInfo <directory name>
Veja tambémComo acessar arquivos Linux/Ubuntu do Windows 10 WSL?
Responder2
Você não pode criar pastas no Ubuntu e acessá-las no Windows. Mas você pode fazer o oposto.
Você pode acessar as unidades do seu Windows em /mnt
. Se você fizer isso, ls /mnt
verá todas as suas unidades. Então /mnt/c é o caminho da sua unidade C. Da mesma forma, /mnt/c/Users/username/Desktop
você pode acessar sua área de trabalho no Bash.
Portanto, basta acessar o caminho desejado usando o Bash e acessar os arquivos e pastas do Windows. Para obter mais detalhes sobre como acessar rapidamente seus arquivos do Windows, use links simbólicos, os detalhes podem serencontrado aqui
Responder3
Inverta seu pensamento: se você deseja criar arquivos usando aplicativos e ferramentas do Windows e acessá-los no Bash, crie esses arquivos etc. em seu sistema de arquivos do Windows e acesse/copie-os do Bash.
Aqui está um exemplo de criação de um arquivo no PowerShell, depois chamando o Bash para copiar o arquivo criado para a pasta inicial e, em seguida, chamando o bash para gravar o conteúdo do arquivo:
PS C:\dev\temp> Set-Content ./hello.txt -Value "Hello, World!" -Encoding ASCII
PS C:\dev\temp> cat .\hello.txt
Hello, World!
PS C:\dev\temp> bash -c "cp /mnt/c/dev/temp/hello.txt ~/"
PS C:\dev\temp> bash -c "cat /mnt/c/dev/temp/hello.txt"
Hello, World!
HTH.