Accessing a cygwin symlink from windows

后端 未结 4 594
野的像风
野的像风 2020-12-16 00:14

I am quite new to cygwin. I created a symlink as follows

$ ln -s /var/www /cygdrive/d/foo

and when

相关标签:
4条回答
  • 2020-12-16 00:58

    Two years later, but I have the answer

    CYGWIN=winsymlinks:native
    ln -s SOURCE TARGET
    

    The CYGWIN environment variable

    0 讨论(0)
  • 2020-12-16 00:58

    Windows won't be able to read Cygwin-created symlinks, but you can create Windows symlinks using Windows commands, and Cygwin will treat those as symlinks.

    On Vista and 7, this can be done with 'mklink'. This is a cmd.exe builtin rather than a standalone utility, so if you want to invoke it from a bash shell you have to do 'cmd /c mklink', and of course it will only understand Windows paths.

    For XP, the 'Windows Resource Kit Tools' contain a utility called linkd that can be used to create directory links.

    0 讨论(0)
  • 2020-12-16 00:59

    One alternative way to call mklink (/d creates directory link) without function:

    link_name="/cygdrive/c/TestLink"
    target_dir="/cygwin/c/Windows"
    cmd /c mklink /d "`cygpath -w \"$link_name\"`" "`cygpath -w \"$target_dir\"`"
    

    This example uses backticks (`command`) for command substitution.

    0 讨论(0)
  • 2020-12-16 01:04

    Not that I know of. Cygwin doesn't update the OS to have symlinks, rather, it allows you to 'fake' symlinks from within the Cygwin shell. You can set up the shell to use Windows LNK files, which may do what you want, but ...

    From the Cygwin Documentation:

    Creating shortcuts with cygutils

    Another problem area is between Unix-style links, which link one file to another, and Microsoft .lnk files, which provide a shortcut to a file. They seem similar at first glance but, in reality, are fairly different. By default, Cygwin does not create symlinks as .lnk files, but there's an option to do that, see the section called “The CYGWIN environment variable”. These symlink .lnk files are compatible with Windows-created .lnk files, but they are still different. They do not include much of the information that is available in a standard Microsoft shortcut, such as the working directory, an icon, etc. The cygutils package includes a mkshortcut utility for creating standard native Microsoft .lnk files.

    But here's the problem. If Cygwin handled these native shortcuts like any other symlink, you could not archive Microsoft .lnk files into tar archives and keep all the information in them. After unpacking, these shortcuts would have lost all the extra information and would be no different than standard Cygwin symlinks. Therefore these two types of links are treated differently. Unfortunately, this means that the usual Unix way of creating and using symlinks does not work with native Windows shortcuts.

    0 讨论(0)
提交回复
热议问题