Bash no Ubuntu no Windows - os arquivos se tornam invisíveis depois de serem atualizados no Windows

0

Eu tenho tido um problema com o Bash no Ubuntu no Windows: quando edito um arquivo localizado em meu diretório home do Bash C: \ Usuários \ me \ AppData \ Local \ lxss \ home \ me \ usando algum software baseado no Windows (notepad ++ por exemplo), o Bash não vê mais o arquivo.

Então, se eu criar um arquivo em meu diretório pessoal usando o Bash e, em seguida, editar o mesmo arquivo usando o Windows, o Bash não o verá mais. Mesmo com copiar e colar um arquivo do Windows no diretório inicial, o Bash não o vê.

Existe alguma maneira de tornar esses arquivos visíveis para o Bash?

P.S. Arquivos e mudanças nos diretórios do Windows são sempre visíveis do Bash através de / mnt / c / ... e ainda são visíveis após editar e mover arquivos ao redor

    
por SergeyOvchinnik 14.11.2016 / 12:20

1 resposta

1

A solução mais fácil seria copiar os arquivos para um diretório diferente antes de editá-los e copiá-los para o local original após a edição.

Dê uma olhada nesta questão: Subsistema Windows Linux - Acessando arquivos fora do Ubuntu

Refere-se ao projeto GitHub para o projeto BashOnWindows . Especificamente, o Issue 402 ou mais especificamente este comentário que diz:

@ducminhnguyen -- copying directly into the Linux subsystem from Windows is not supported, according to discussion on other tickets. There is a directory under AppData somewhere (I forget where) that appears to contain the files for the WSL filesystem. But if you put new files there, or modify existing files there, your changes are not reflected correctly inside WSL.

My best guess is that Linux needs to store different metadata (and more caching information, etc, since its disk-buffering model is also different) about its files than Windows does, and that this is currently implemented by storing the master copy of the structure of the Linux filesystem in a database of some sort, and just using the Windows filesystem as a convenient BLOB-store for that database.

If you really need to do this, a workaround would be to write a drag'n'drop .bat script or somesuch that does bash.exe -c "mv %1 /home/$USER/". (You'll have to do some clever work with sed and tr, probably, to translate %1 to a valid WSL path.)

Alternatively -- could you put your files in a Windows directory and, within WSL, do "cd ~; ln -s /mnt/c/path/to/my/files" to make them appear to be in your WSL homedir?

    
por 14.11.2016 / 12:57