5

有没有一种简单的方法可以显示指定路径中是​​否有任何符号链接指向某个目录或其子目录?

4

3 回答 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 回答