有没有一种简单的方法可以显示指定路径中是否有任何符号链接指向某个目录或其子目录?
问问题
4572 次
3 回答
10
一种简单而快速的方法,假设您将目标作为绝对路径(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
),一次一个(-n1
),到第二个find
查找源自下面的所有符号链接$PATH
。
总结一下:find(1)
是你的朋友。
于 2009-12-10T20:41:10.577 回答
4
跟进伯爵给出的答案:
-xtype
不适用于 Mac OSX,但可以安全地省略:
find $PATH -type l -lname "$DIR*"
例子:
find ~/ -type l -lname "~/my/sub/folder/*"
于 2016-01-04T10:44:20.387 回答
0
查看 fslint 中的 findbl(坏链接)脚本。它可能会给你一些提示: http ://code.google.com/p/fslint/source/browse/trunk/fslint/findbl
于 2009-12-10T21:39:27.087 回答