Cygwin tool to differ junctions from soft links?
Thomas Wolff
towo@towo.net
Fri Nov 17 05:54:40 GMT 2023
Am 16.11.2023 um 21:30 schrieb Brian Inglis via Cygwin:
> On 2023-11-16 11:55, matthew patton via Cygwin wrote:
>> On Thursday, November 16, 2023 at 03:50:24 AM EST, Andrey Repin wrote:
>>>> Does Cygwin have a command line tool (Scriptable!) which can be
>>>> used to
>>>> differ between soft links and Windows junctions?
>
> Distinguishing between types of Windows reparse points is not a POSIX
> or emulation function, so not of interest to Cygwin developers.
>
> I thought about it when support was added, but then realized there was
> no nice place to add it within the platform, without going the
> non-portable Windows specific utility route, as in lsattr.
>
> You could in a function or script by running lsattr -d which seems to
> fail on reparse points, then ls -dl which shows a Symbolic Link with a
> relative path, and a Junction with an absolute path, although it could
> just be a Symbolic Link with an absolute path.
lsattr has an explicit flag:
'r', 'Reparse': file or directory that has a reparse
point
I don't know whether it's the same as a junction, otherwise a 'j' flag
could be added.
>
> Perhaps something like the following would be useful to Windows users
> who want to know this stuff:
>
> https://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
>
>>> It would be easier to help you, if you specify the purpose of your
>>> request. I.e. what you want to achieve with such tool.
>> AFAIK no. what I do is re-implement 'ln' with a wrapper because the
>> Cygwin
>> behavior (Junctions) was driving me up the wall.
>> https://github.com/tb3088/shell-environment/blob/ccf7aa161899c2c4ebe2d9e980e674bc726a3ef3/.functions_os.CYGWIN_NT#L9
>>
>
> Cygwin never creates Windows Directory or Filesystem Junction reparse
> points, and by default it uses its own version of Unix path symlink
> files, preceded by a flag ("magic cookie") value, and with system
> attribute, to allow compatibility with FAT file system limitations, or
> else NFS symlinks on NFS filesystems.
>
> CYGWIN env var settings allow creation of Windows shortcuts and
> symbolic link reparse points instead of its default (equivalent to
> winsymlinks:sys), when supported by the file system and Windows release:
>
> https://cygwin.com/cygwin-ug-net/using-cygwinenv.html
>
> https://cygwin.com/cygwin-ug-net/using.html#pathnames-symlinks
>
More information about the Cygwin
mailing list