Mac OSX 10.6
我有一些别名指向错误的卷。我想在我的整个层次结构中搜索这样的别名。它们是别名,而不是符号链接,所以我不能只做find / -type l -ls | grep badVolumeName
.
别名似乎有一个 com.apple.ResourceFork,但是用它查询它xattr
会给我二进制数据。有没有办法将别名的目标转储为文本,以便我可以 grep 查找错误的卷名?或者还有什么方法可以做到这一点?
要查找别名文件,您可以在 StackOverflow 上使用此答案。首先,创建一个脚本is_alias.sh
:
#! /bin/bash
[ "$(mdls -raw -name kMDItemKind "$1")" = "Alias" ]
然后运行
find . -type f -exec ./is_alias.sh {} \; -print
获取别名的路径似乎相当困难。
有人发布了一个使用 MacPerl 的解决方案,但由于我没有 MacPerl,我没有对此进行测试,也不知道它是否有效。
AskDifferent 上有一个类似的问题,有几个不同的建议,但似乎都没有真正解决问题。Applescript 的答案还可以,但是获取别名文件的“原始项目”的关键操作似乎不适用于损坏的别名。
你也可以看看这个可能有一些 Cocoa 解决方案的问题。