Por que, quando crio um arquivo no Windows, por exemplo, não consigo vê-lo no subsistema Linux no Windows 10 (bash.exe)
A captura de tela deve explicar.
Pasta: OMG foi criado no Windows Explorer. A pasta OMGBash foi criada com o subsistema Linux bash.exe
Quando uma pasta OU arquivo é criado fora do bash.exe, nunca consigo vê-lo, independentemente de permissões e propriedade.
Para mostrar as informações que tive que usar o Cygwin para mostrar permissões de arquivo, também alterei as permissões para ver se a pasta seria exibida. (As duas janelas de comando na parte inferior)
Captura de tela mostrando permissões de pasta, bash.exe e Cygwin:
Estou tentando mover todos os meus scripts Cygwin para o subsistema Linux, mas não gosto de recriar todos os arquivos, depois copiar e colar usando o bash, reformatar e usar o Dos2unix (muito longo).
Encontrei isso no GitHub para o subsistema Linux:
copiar diretamente para o subsistema Linux do Windows não é suportado, de acordo com a discussão em outros tickets. Há um diretório em AppData em algum lugar (eu esqueço onde) que parece conter os arquivos do sistema de arquivos WSL. Mas se você colocar novos arquivos ou modificar os arquivos existentes, suas alterações não serão refletidas corretamente na WSL.
Meu melhor palpite é que o Linux precisa armazenar metadados diferentes (e mais informações de armazenamento em cache, etc, já que seu modelo de buffer de disco também é diferente) sobre seus arquivos do que o Windows, e que isso é atualmente implementado armazenando a cópia principal da estrutura do sistema de arquivos Linux em um banco de dados de algum tipo, e apenas usando o sistema de arquivos Windows como uma loja BLOB conveniente para esse banco de dados.
Se você realmente precisar fazer isso, uma solução alternativa seria escrever um script .bat de arrastar e soltar ou algo do tipo bash.exe -c "mv% 1 / home / $ USER /". (Você precisará fazer um trabalho inteligente com sed e tr, provavelmente, para converter% 1 em um caminho WSL válido.)
Como alternativa - você poderia colocar seus arquivos em um diretório do Windows e, dentro da WSL, faça "cd ~; ln -s / mnt / c / caminho / para / meus / arquivos" para que eles pareçam estar no seu homedir da WSL?
cp -r --no-preserve=all
as permissões anteriores. Ainda assim, se você quiser fazer alterações pesadas, não poderá usar um aplicativo do Windows para editar o arquivo no LinuxSubSystem. É necessário editá-lo no diretório do Windows e copiá-lo. Agora eu sei que isso, a sua viável, mas eu estava sob a impressão do Sub Sistema Linux era mais nativa / integrado ao Windows que um OS Isolated
%LocalAppData%\Packages\<some-long-name-of-distro>\LocalState\rootfs
.