# 先收集所有软链接及其目标
find /path/to/search -type l -printf '%p -> %l\n' | while read link arrow target; do
# 将相对路径转换为绝对路径(基于软链接所在目录)
dir=$(dirname "$link")
abs_target=$(cd "$dir" 2>/dev/null && readlink -f "$target" 2>/dev/null || echo "$target (invalid)")
echo "$link -> $abs_target"
done | awk '{
target = $3
symlink = $1
count[target]++
symlinks[target] = symlinks[target] " " symlink
}
END {
for (t in count) {
print "Target:", t
print " Linked by (" count[t] "):" symlinks[t]
print ""
}
}'