Native symbolic link behavior is broken and makes backups using Cygwin command line tools impossible

Andrey Repin
Tue Jan 12 22:18:03 GMT 2021

Greetings, Matt D.!

Please no top posting in this list.

> On Mon, Jan 4, 2021 at 10:46 AM Jeffrey Altman via Cygwin wrote:
>> On 1/4/2021 10:27 AM, Matt D. via Cygwin wrote:
>> > I am using symbolic links native to Windows. My CYGWIN environment
>> > variable has been set to "winsymlinks:nativestrict" and my account has
>> > permission to make symbolic links. This is an issue specifically with
>> > Cygwin; I have no problems making links at the windows command line.
>> > Cygwin also does not have a problem making symbolic links-- if the
>> > target already exists. The issue is that I cannot create native
>> > symbolic links with Cygwin for targets that DON'T exist.
>> >
>> > The normal behavior for both Windows and Linux is to create the
>> > symbolic link whether the target exists or not. I don't know why
>> > Cygwin fails to do this only for native Windows symbolic links. It
>> > does not have a problem creating links to any target with the default
>> > Cygwin (non-Windows) symbolic links.
>> Windows native symlinks encode the object type of the target and the
>> encoded type must match that of the target or the link will not work
>> when the target exists.
>> A UNIX symlink does not encode any details of the target.
>> Cygwin doesn't know what type of native symlink to create if the
>> target does not exist.

> Operations like cp and rsync etc. should still work. The type of
> symbolic link to be created can be read from the file attributes of
> the one being copied.

Again, the properties are read BY SYSTEM at the moment the link is created.
In other words, Windows is unable to create a link to nonexistent
(unreachable) target (not directly, at least).

With best regards,
Andrey Repin
Wednesday, January 13, 2021 1:14:52

Sorry for my terrible english...

More information about the Cygwin mailing list