提问人:Pekka 提问时间:12/11/2009 更新时间:1/4/2016 访问量:4812
查找指向某个目录或其子目录之一的符号链接
Find symlinks to certain directory or one of its subdirs
答:
10赞
earl
12/11/2009
#1
一个简单而快速的方法,假设你把目标作为绝对路径(可能有助于解决这个问题):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)
是你的朋友。
评论
0赞
ives
2/6/2015
找到$PATH -type l -lname “$DIR*”
0赞
ives
2/6/2015
找到$PATH -type l -lname “$DIR*” -exec ls -l {} \;
0赞
pixelbeat
12/11/2009
#2
看看 fslint 中的 findbl(坏链接)脚本。它可能会给你一些提示:http://code.google.com/p/fslint/source/browse/trunk/fslint/findbl
5赞
sqren
1/4/2016
#3
跟进伯爵给出的答案:
-xtype
在 Mac OSX 上不起作用,但可以安全地省略:
find $PATH -type l -lname "$DIR*"
例:
find ~/ -type l -lname "~/my/sub/folder/*"
评论
0赞
Andreas Louv
5/8/2016
-xtype
用于在(旧日)打开时查找符号链接。 是 afaik 是 GNU 扩展。你是对的。由于未使用,因此可以安全地省略它。不过,人们会认为只会提供目录,并且只会提供指向目录的符号链接。-L
-follow
-xtype
-L
-type d
-type l -type d
评论