gpt4 book ai didi

cygwin - 检查cygwin中符号链接(symbolic link)类型的差异

转载 作者:行者123 更新时间:2023-12-03 23:25:26 25 4
gpt4 key购买 nike

我同时使用 winsymlinks:native 和 cygwin 符号链接(symbolic link),具体取决于 Windows 是否需要并且可以跟随链接。我想要一种 cygwin 方法来查看它是什么类型的符号链接(symbolic link),因为它只看到一个符号链接(symbolic link),但 DOS 看到了区别。我需要知道差异,以便我可以处理 rsyncing/etc/并保留(或重新创建)符号链接(symbolic link)的类型。

我有权限创建 dos 原生权限,并具有设置以下任一功能的功能:

    $ touch test

# cygwin style symlink
$ CYGWIN= ln -s test t1

# WINDOWS style
$ CYGWIN=winsymlinks:native ln -s test t2

# for good measure make one the DOS way
$ cmd /c mklink t3 test
symbolic link created for t3 <<===>> test

cygwin 将它们都视为符号链接(symbolic link):
    $ ls -l
total 1
lrwxrwxrwx 1 user Users 4 Jun 14 11:06 t1 -> test
lrwxrwxrwx 1 user Users 4 Jun 14 11:06 t2 -> test
lrwxrwxrwx 1 user Users 4 Jun 14 11:06 t3 -> test
-rw-rw-rw-+ 1 user Users 0 Jun 14 11:05 test

Windows 知道 native 符号链接(symbolic link):
explorer screen shot
或者从 DOS 看:
    $ cmd /c dir /a
Volume in drive C is Windows
Directory of C:\Cygwin-32\tmp
06/14/2014 11:06 AM 22 t1
06/14/2014 11:06 AM <SYMLINK> t2 [test]
06/14/2014 11:06 AM <SYMLINK> t3 [test]
06/14/2014 11:05 AM 0 test
4 File(s) 22 bytes

那么在 CYGWIN 中查看时如何判断它是哪种符号链接(symbolic link)?当我对这些符号链接(symbolic link)进行 rsync 时,cygwin 将使它们都在目的地成为 CYGWIN env var 中设置的类型。我想将符号链接(symbolic link)类型保留在 rsync 的目标中,或者至少通过源文件夹,找出类型并在目标处更改它们。 stat也只将它们报告为符号链接(symbolic link),看不到区别。

添加此部分是因为我讨厌“您为什么需要(或想要)这样做?”答案:

为什么要混合符号链接(symbolic link)?我尝试将我的整体 CYGWIN 环境变量设置为 CYGWIN=winsymlinks:nativeCYGWIN=winsymlinks:nativestrict但是在某些软件包安装过程中(主要使用 apt-cyg )我在一些软件包的提取 TAR 中遇到了错误,所以我忽略了它,只在需要它们时调用 CYGWIN=winsymlinks:native (如果 Windows 需要遵循链接) .我认为这些软件包是作为初始 CYGWIN setup.exe 中的 cygwin 符号链接(symbolic link)安装的,因此全局设置该值将在以后产生问题。我还让 CYGWIN=winsymlinks:nativestrict 设置创建了一个实际的“/usr/bin/”文件夹(可以在资源管理器中看到),但是 cygwin 已将/bin 安装为/usr/bin,因此您提取的包在赛格温。

也只是因为有一些我不想让 Windows 知道或遵循的符号链接(symbolic link)。

最佳答案

我最终编写了这个脚本。 cygwin 中的测试是调用 dos 命令和 grep 以获取所需的信息。

if fsutil reparsepoint query "$1" | grep -iq "Tag value: Symbolic Link" ; then
echo "Windows Native Symlink"
fi

关于cygwin - 检查cygwin中符号链接(symbolic link)类型的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24222591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com