是否有一种简单的方法可以显示指定路径中是否有任何符号链接指向某个目录或其中一个子目录?
答案 0 :(得分:8)
一种简单快速的方法,假设您将目标作为绝对路径(readlink(1)
可能有助于解决此问题):
find $PATH -type l -xtype d -lname "$DIR*"
这会找到-type l
下方的所有符号链接($PATH
),这些符号链接指向名称以-xtype d
开头的目录($DIR
)。
另一种方法是O(n * m),因此可能需要很长时间和两天:
find $DIR -type d | xargs -n1 find $PATH -lname
第一个find
列出$DIR
及其所有子目录,然后一次一个(xargs
)传递给第二个{{1查找源自-n1
以下的所有符号链接。
总结一下: find
是你的朋友。
答案 1 :(得分:3)
-xtype
在Mac OSX上不起作用,但可以安全地省略:
find $PATH -type l -lname "$DIR*"
示例:
find ~/ -type l -lname "~/my/sub/folder/*"
答案 2 :(得分:0)
查看fslint中的findbl(错误链接)脚本。它可能会给你一些提示: http://code.google.com/p/fslint/source/browse/trunk/fslint/findbl