OSX 10.5上哪个版本的xattr不会遵循符号链接?


3

我需要编辑作为符号链接的目录的扩展属性。

不幸的是,OSX 10.5上的xattr写入链接目标而不是链接本身。

我发现了一个支持“-s”选项的不同版本来禁止跟随符号链接。我从存储库中检查了它,但是没有安装程序文件可以解决,我想我需要一个:https//xattr.svn.sourceforge.net/svnroot/xattr

然后我找到了另一个版本并检查了它,并且最终能够在安装Xcode后安装它:

http://svn.red-bean.com/bob/xattr/releases/xattr-0.6.1/

但是,当我运行此版本时,我似乎没有获得神奇的“-s”选项来禁止跟随符号链接。事实上,这个版本似乎没有原始xattr所具有的任何其他选项。

有没有人在OSX 10.5上运行的xattr版本支持不遵循符号链接,或任何其他允许我编写扩展属性而不遵循符号链接的应用程序?

Answers:


1

https://github.com/jwodder/xattr 1的变体具有-P抑制跟随符号链接的通常行为的选项即将XATTR_NOFOLLOW选项传递给listxattr(2)等)。包含的文档表明这种“在符号链接上运行,而不是目标”模式是默认模式(它用于默认在目标上运行,但代码最近更新以匹配文档)。

选项和操作模式与通常的xattr(1)不同,因此您可能必须调整已有的任何脚本。

既然你说你已经安装了开发人员工具(即Xcode),那么make应该构建一个简单的程序。我在运行Mac OS X 10.6.7的机器上编译并进行了轻微测试(之前我曾在10.4机器上使用它,因此它应该在10.5上工作正常)。


关于“作为符号链接的目录”的注意事项:目录条目可以是目录或符号链接(或普通文件等),但不能同时是两者。说“作为符号链接的目录”或“作为目录的符号链接”是不准确的。恰当地说,它只是“最终2指向目录的符号链接”。

1 您可以使用GitHub页面右侧的“下载”按钮下载.tar.gz或者.zip如果您没有安装Git。

2 “最终”因为符号链接可以指向其他符号链接。它们甚至可以指向不存在的路径名(创建“悬空”符号链接)。


非常感谢另一个xattr :)我下载tar,提取它,然后从包含Makefile的文件夹中“$ make”。然后我得到以下内容:“gcc -o xattr xattr.c -std = c99 -O2 ld:无法打开输出文件进行写入:xattr collect2:ld返回1退出状态make:*** [xattr]错误1”我不知道如何使这个makefile工作:(也谢谢你在符号链接的定义课程:)
timoto

@timoto:看起来你没有对你所在目录的写访问权限。你是否可能以root或其他用户的身份提取它?sudo只需要解压缩这个tar文件并构建程序就不需要了。
克里斯约翰森

DOH!先生,我的帽子给你了。权限确实不匹配。以提取tar的用户身份进行操作。我现在可以在xattr帮助中看到一个可爱的“-P”,大概是“-s”(set)写的。谢谢克里斯。
timoto 2011年

@timoto:是的,-s用于“设置”。我没有提到文件。文档的“来源”是xattr.pod。它是纯文本,但Pod标记可能有点“阅读”的痛苦。您可以使用man ./xattr.1该文档作为联机帮助页。
克里斯约翰森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.