# WSL - Linux files don't update when Windows files are modified

I have installed Windows Subsystem for Linux and created a symbolic link to a folder with web development files in it.  Let's say I had a file C:\Users\Anthony\Desktop\foo\bar.css that said background: green.  Then (in WSL) I did

ln -s /mnt/c/Users/Anthony/Desktop/foo /var/www/html


So far so good.  From a Linux process, I can read /var/www/html/bar.css.

However, when I modify the file C:\Users\Anthony\Desktop\foo\bar.css in Windows to say background: red, the Linux file (/var/www/html/bar.css) remains unchanged, and still appears to say background: green.

In an attempt to remedy the issue I have tried doing the following:

• restarting the apache server
• restarting the bash CLI
• creating identical symbolic link in hope of overwriting it
• rebooting my pc
• logging out and in to windows

Below is the CLI output, the permissions of all of the folders.

/var/www
total 4
drwxr-xr-x 0 root root 512 Aug 11 17:55 .
drwxr-xr-x 0 root root 512 Aug 11 17:55 ..
drwxr-xr-x 0 root root 512 Aug 11 17:55 html

/var/www/html
total 12
drwxr-xr-x 0 root root   512 Aug 11 17:55 .
drwxr-xr-x 0 root root   512 Aug 11 17:55 ..
-rw-r--r-- 1 root root 11321 Aug 11 17:55 index.html
lrwxrwxrwx 1 root root    33 Aug 11 17:58 joli -> /mnt/c/Users/Anthony/Desktop/joli

/var/www/html/joli
total 26626
drwxrwxrwx 0 root root  512 Aug 11 15:15 .
drwxrwxrwx 0 root root  512 Aug 11 17:59 ..
drwxrwxrwx 0 root root  512 Aug 11 15:46 css
drwxrwxrwx 0 root root  512 Aug 11 15:15 includes
-rwxrwxrwx 1 root root 4477 Aug 11 15:16 verify-id.php

/mnt/c/Users/[user]/Desktop/joli
total 26626
drwxrwxrwx 0 root root  512 Aug 11 15:15 .
drwxrwxrwx 0 root root  512 Aug 11 17:59 ..
drwxrwxrwx 0 root root  512 Aug 11 15:46 css
drwxrwxrwx 0 root root  512 Aug 11 15:15 includes
-rwxrwxrwx 1 root root 4477 Aug 11 15:16 verify-id.php

/mnt/c/Users/[user]/Desktop/joli/css
total 4097
drwxrwxrwx 0 root root 512 Aug 11 15:46 .
drwxrwxrwx 0 root root 512 Aug 11 15:15 ..
-rwxrwxrwx 1 root root 792 Aug 11 18:00 verify-id.css


For what it's worth, every time I try to start apache2 I receive the following error, (92)Protocol not available: AH00076: Failed to enable APR_TCP_DEFER_ACCEPT, which doesn't seem to effect the operation of the server if anything at all.

I have been searching the Internet for well over an hour and have not been able to find anything relevant to this.

Is there a quick and easy way to "refresh" the Linux files so that both files are constantly synchronized with one another?

• @Anthony have you considered using a Windows symbolic link instead? Using the mklink command? – Gamerb Aug 12 '17 at 0:58
• Do you see the old or changed content when you do a cat in Linux on the link or on the original file? – eckes Aug 12 '17 at 1:59
• Can you replace foo with joli/css and bar.css with the actual filename and show a ls -l on the actual file. And also do a cat on the css file. Is this a Apache.exe or a Linux httpd process? – eckes Aug 12 '17 at 2:03
• @Scott i've double checked the issue is certainly with what's displayed in the browser because all of the files are registering correctly after updating. these changes simply aren't reflected in the browser – user2230470 Aug 12 '17 at 2:17
• I'm beginning to think that this is not a WSL / Linux / Windows / link problem, but an Apache problem.  Can you copy the web files into /var/www/html and repeat the display / edit / refresh steps? – Scott Aug 12 '17 at 2:17