Windows 10 Ubuntu - crie uma pasta a partir do Windows e acesse a partir do Bash

0

Estou executando o Ubuntu no Windows.
Quando eu criar uma pasta do Windows chamada newFolder no diretório raiz
C:\Users\myuser\AppData\Local\lxss\root\Newfolder
então do Bash quando eu corro ls eu não vejo a nova pasta que acabou de ser criada.

Como posso consertar isso para que eu possa criar pastas e arquivos nas janelas e acessá-los do Bash?

    
por t q 22.09.2016 / 22:11

3 respostas

2

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 executando fsutil file layout lxss\root e observe o $EA stream . Se você criar os arquivos diretamente do Windows, vai bagunçar as coisas, porque os aplicativos do win32 não sabem nada sobre o Linux e seus metadados de arquivos

The problem arises when, for example, you use a Windows app/tool to open, create and/or modify a file under your distro root: Since the file was created with a Windows tool, the file won't have any Linux file metadata (e.g. permissions, owner, access/update timestamps, etc.). Thus, to Linux, (which only receives Linux file metadata), the file may be reported as empty, may not even exist, or may have some metadata, but that metadata may not reflect the file's details resulted in the file's contents being corrupted.

Portanto, a MS alertou ousadamente que

DO NOT, under ANY circumstances, create and/or modify Linux files using Windows apps, tools, scripts, consoles, etc.

Creating/changing Linux files from Windows will likely result in data corruption and/or damage your Linux environment requiring you to uninstall & reinstall your distro!

Do not change Linux files using Windows apps and tools

Arquivos que são relevantes apenas para o Linux devem ser criados apenas a partir do WSL. Se você deseja criar arquivos que sejam acessíveis a ambos os sistemas, crie-os fora da raiz da WSL e acesse a WSL por meio do ponto de montagem em /mnt like /mnt/drive/path

Se você quiser criar arquivos em sistemas de arquivos do Windows, mas manter a sensibilidade ao caso, use

fsutil file setCaseSensitiveInfo <directory name> enable

O sinalizador também pode ser verificado com fsutil file queryCaseSensitiveInfo <directory name>

    
por 06.08.2018 / 05:35
2

Você não pode criar pastas no Ubuntu e acessá-las do Windows. Mas você pode fazer o oposto.

Você pode acessar as unidades do seu Windows em /mnt . Se você fizer ls /mnt , verá todos os seus drives. Então / mnt / c é o caminho da sua unidade C. Da mesma forma, /mnt/c/Users/username/Desktop pode lhe dar acesso à sua área de trabalho no Bash.

Portanto, basta alcançar o caminho desejado usando o Bash e acessar os arquivos do Windows & pastas. Para obter mais detalhes sobre como acessar rapidamente os arquivos do Windows, use links simbólicos. Os detalhes podem ser encontrados aqui

    
por 07.04.2017 / 16:42
1

Inverta o seu pensamento: se você quiser criar arquivos usando o Windows apps & ferramentas, e acessá-los a partir do Bash, em seguida, criar esses arquivos, etc, no seu sistema de arquivos do Windows e acessar / copiá-los do Bash.

Veja um exemplo de criação de um arquivo no PowerShell, em seguida, chamando 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.

    
por 09.04.2017 / 22:00