From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from omta001.cacentral1.a.cloudfilter.net (omta001.cacentral1.a.cloudfilter.net [3.97.99.32]) by sourceware.org (Postfix) with ESMTPS id 235063858D20 for ; Fri, 17 Nov 2023 14:56:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 235063858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=Shaw.ca Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=shaw.ca ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 235063858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=3.97.99.32 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700233018; cv=none; b=YjH0OoRim7ovaFE36Gy8MzcYXmwvfH10pIXDBbXyiHFkfqvZnmkh1IdqCJboYnHB0Nv3Vy4NRi6EwSJO4UDMNBZmr80fXkRCAPLKu93QQSRM9uMbs9NfBWi7t6j4T98/Nmml62/5bQJln/+rlvxcAFB6N+acE+4UNbj97HOwKFY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700233018; c=relaxed/simple; bh=a78VEes0gwZ6XZZ4ZcgsUkdikVIVUpQycb5ABQAd4nw=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=SwiMD1FDr4WqH4RsVLw9VcZMms0rO6uoG7ZifZ/171gLCj3YlwKD9jSFtKfbK8Ur0W4KIxHJz85KUv6+puyFur4VgOrzhJeruurpJLSYSO4KehnwtV6F+vSKjjhJxYiqIYTeEFLHqB5HJfp52eh/1bsnh0jrHZhugUQswDddzf0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from shw-obgw-4004a.ext.cloudfilter.net ([10.228.9.227]) by cmsmtp with ESMTPS id 3fBxrhRFo8jpT40H8rj3eI; Fri, 17 Nov 2023 14:56:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=shaw.ca; s=s20180605; t=1700233014; bh=a78VEes0gwZ6XZZ4ZcgsUkdikVIVUpQycb5ABQAd4nw=; h=Date:Reply-To:Subject:To:References:From:In-Reply-To; b=nj175as+Ya7Hy5n2HmwijNsAosDsfN7vA1TbvINcnv19RB9DtSWEOC9CCpQUIQ6V0 1smUA/2U3y0EcFTLvsJ3x883h4fo9CkrzG+ddvndYoZ9w3kb4BuAuZj0f3BtBJJuBs QEsP44r8GVu/o0HzRyMVPI6HIO5y3Slx4Hay0jJn0vpQSCRj7+0LueVMnZIDkKIZOh h4dLWfFYr4efjfZ2hauB6n502QMckiXyVcdARkbRGXOUQ/q193ZEOJsRV3rk6u0vjV ch7zZOwLH4IodM7/KPWMsjccUX78PJHQ8f064u1dH7PLezpTtWs0rx2yFgyCYeU/Mw OyvvydbMT5DaQ== Received: from [10.0.0.5] ([184.64.102.149]) by cmsmtp with ESMTP id 40H7r2jUZDqGY40H8rkxBO; Fri, 17 Nov 2023 14:56:54 +0000 X-Authority-Analysis: v=2.4 cv=Cousz10D c=1 sm=1 tr=0 ts=65577f36 a=DxHlV3/gbUaP7LOF0QAmaA==:117 a=DxHlV3/gbUaP7LOF0QAmaA==:17 a=IkcTkHD0fZMA:10 a=FfVa6YyVAAAA:8 a=NEAV23lmAAAA:8 a=w_pzkKWiAAAA:8 a=ioSjotguIdqZv6BickgA:9 a=QEXdDO2ut3YA:10 a=YA-VbQCo1SUA:10 a=pwUoXiQdmvIA:10 a=Lz48L_9qCwoA:10 a=UiCPdkfYahhcG6y9nT3T:22 a=sRI3_1zDfAgwuvI8zelB:22 Message-ID: Date: Fri, 17 Nov 2023 07:56:53 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Reply-To: cygwin@cygwin.com Subject: Re: Cygwin tool to differ junctions from soft links? Content-Language: en-CA To: cygwin@cygwin.com References: <48998319.20231116114707@yandex.ru> <1439487749.2493319.1700160923985@mail.yahoo.com> <6752f3b0-0fbf-4709-976c-12030285e0bb@Shaw.ca> <39d6c013-f929-49c1-948a-810383959a1b@towo.net> From: Brian Inglis Organization: Inglis In-Reply-To: <39d6c013-f929-49c1-948a-810383959a1b@towo.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4xfC2Cu0btJLYqfSf+5SmIc7owSP6RU8rtQnb3aBouJO8ICgbpZlj1QO33qCYLp4Xgk4/PYRFX+4zLyza6Zh51MWa+fHhyYY1KqDwOaEDiMMZ0GGF5pGEm iUgg02DFP4ThXZ3guFKJv+M6S9H4UTpeJs2RAqmkvV6jhgXM3SujCrh7K1HU+O3hxsFF/+OGUesSew== X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 2023-11-16 22:54, Thomas Wolff via Cygwin wrote: > 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. Notice that the flag is the same as 'r' "Readonly" and lsattr does not work on Windows Reparse Points which are Junctions, Directory or File Symbolic Links [sanitized]: $ cd ~ $ cmd /c dir /a:l | grep '>' 2021-04-13 10:41 Application Data [$HOME/AppData/Roaming] 2021-06-21 21:07 Bookshelf [...] 2021-04-13 10:41 Cookies [$HOME/AppData/Local/Microsoft/Windows/INetCookies] 2021-09-15 10:23 cygwin-64t [...] 2021-04-13 10:41 Local Settings [$HOME/AppData/Local] 2020-04-21 03:33 Mail [AppData/Roaming/...] 2021-04-13 10:41 My Documents [$HOME/Documents] 2021-04-13 10:41 NetHood [$HOME/AppData/Roaming/Microsoft/Windows/Network Shortcuts] 2023-05-27 07:30 ntp-dev [...] 2023-05-27 07:30 ntp-stable [...] 2021-04-13 10:41 PrintHood [$HOME/AppData/Roaming/Microsoft/Windows/Printer Shortcuts] 2021-04-13 10:41 Recent [$HOME/AppData/Roaming/Microsoft/Windows/Recent] 2021-04-13 10:41 SendTo [$HOME/AppData/Roaming/Microsoft/Windows/SendTo] 2021-04-13 10:41 Start Menu [$HOME/AppData/Roaming/Microsoft/Windows/Start Menu] 2021-02-10 21:19 Tech [...] 2021-04-13 10:41 Templates [$HOME/AppData/Roaming/Microsoft/Windows/Templates] 2022-05-27 19:15 weather [...] 2020-06-20 01:19 _gvimrc [.vim/gvimrc] 2020-06-20 01:06 _vim [.vim] 2020-06-20 00:51 _viminfo [.vim/viminfo] 2020-06-20 00:51 _vimrc [.vim/vimrc] $ cmd /c dir /a:l /b "$HOMEPATH" | d2u | xargs -I@ lsattr -d '@' lsattr: Not supported on Application Data lsattr: Not supported on Bookshelf lsattr: Not supported on Cookies lsattr: Not supported on cygwin-64t lsattr: Not supported on Local Settings lsattr: Not supported on Mail lsattr: Not supported on My Documents lsattr: Not supported on NetHood lsattr: Not supported on ntp-dev lsattr: Not supported on ntp-stable lsattr: Not supported on PrintHood lsattr: Not supported on Recent lsattr: Not supported on SendTo lsattr: Not supported on Start Menu lsattr: Not supported on Tech lsattr: Not supported on Templates lsattr: Not supported on weather lsattr: Not supported on _gvimrc lsattr: Not supported on _vim lsattr: Not supported on _viminfo lsattr: Not supported on _vimrc >> 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 -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut -- Antoine de Saint-Exupéry