Change in logical link behaviour
Rainer Emrich
rainer@emrich-ebersheim.de
Tue Mar 3 13:39:00 GMT 2020
Dear Corinna,
Am 02.03.2020 um 17:48 schrieb Corinna Vinschen:
> On Feb 29 14:10, Rainer Emrich wrote:
>> I try to reliably determine if native Windows symlink are working for a
>> current cygwin environment in a shell script.
>>
>> Therefor I used a powershell snipped:
>>
>> mkdir asdfgh
>> ln -s asdfgh/ asdfgh-1
>> powershell "& {Get-Item -Path asdfgh-1 | Select-Object}"
>>
>> On cygwin 3.0.7 the output is as follows:
>>
>>
>> Directory: D:\cygwin\home\rainer\temp
>>
>>
>> Mode LastWriteTime Length Name
>> ---- ------------- ------ ----
>> d----l 29.02.2020 13:58 asdfgh-1
>>
>> On cygwin 3.1.4 I get:
>>
>>
>> Directory: D:\cygwin\home\rainer\temp
>>
>>
>> Mode LastWriteTime Length Name
>> ---- ------------- ------ ----
>> d---- 29.02.2020 13:58 asdfgh-1
>>
>> So now there is no indication that this is a link. Is this new behaviour
>> intended or a bug?
>>
>> I did not try on Windows 10, I'm still on windows 7.
>>
>> Rainer
>>
>
> I can't reproduce this behaviour. Keep in mind that, by default, you
> *have to* run in an elevated shell to be able to create native NTFS
> symlinks, *and* you *have to* set the environment variable CYGWIN(*) to
> contain "winsymlinks:native" or "winsymlinks:nativestrict". The latter
> is nice for testing, it refuses to fall back silently to the default
> Cygwin-only symlinks but fails instead if it can't create a native
> NTFS symlink.
I know all the implications. I have to test in an unknown cygwin
environment if it is possible to set native symlinks.
>
> So, on Windows 7 in an elevated shell:
>
> # id -G | grep -Eq '\<544\>' && echo elevated || echo non-elevated
> elevated
> # uname -a
> CYGWIN_NT-6.1 vmbert764 3.1.4(0.340/5/3) 2020-02-19 08:49 x86_64 Cygwin
> # mkdir qwe
> # cd qwe
> # export CYGWIN="winsymlinks:nativestrict"
> # touch foo
> # ln -s foo bar
> # cmd /c dir /a
> Volume in drive C has no label.
> Volume Serial Number is A8E0-A24E
>
> Directory of C:\cygwin64\home\corinna\qwe
>
> 2020-03-02 17:31 <DIR> .
> 2020-03-02 17:31 <DIR> ..
> 2020-03-02 17:31 <SYMLINK> bar [foo]
> 2020-03-02 17:31 0 foo
> 2 File(s) 0 bytes
> 2 Dir(s) 7.907.352.576 bytes free
>
Yes, this is the same for me, but if you use the powershell
# powershell "& {Get-Item -Path bar | Select-Object}"
on cygwin 3.0.7 you get
Directory: D:\cygwin\home\rainer\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---l 03.03.2020 14:09 0 bar
and on cygwin 3.1.4 you get
Directory: D:\cygwin\home\rainer\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 03.03.2020 14:09 0 bar
The only difference is the used cygwin version. So, I don't understand
what has changed.
Cheers
Rainer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://cygwin.com/pipermail/cygwin/attachments/20200303/4a30d5f4/attachment-0001.sig>
More information about the Cygwin
mailing list