SSH 是到 dropbear 的软链接(符号链接或符号链接)。
我想知道有多少文件软链接到 dropbear。有什么方法可以找到有多少软链接指向某个文件吗?
如果它还显示指向该文件的软链接列表就更好了。
/usr/bin/ssh -l
lrwxrwxrwx 1 root root 16 Apr 22 2011 /usr/bin/ssh -> ../sbin/dropbear
答案1
我想出了这个链条:
find . -type l -ls | egrep -o -- '-> .+$' | sort | uniq -c
它列出了所有符号链接,并对其后的所有内容进行 greps->
处理、排序和分组。
这是第一步,但目前还不够完美。您可以继续运行find
以/
获取一个大列表,但如果符号链接指向相对目标,则命令会将它们分组在一起,即使它们不相同。
例子:
/home/shi/bin/list.sh -> ./show.sh
/home/shi/sbin/all.sh -> ./show.sh
show.sh
可能是不同的程序-一个在bin
,另一个在sbin
。
另一个问题是其中包含常规文件名->
(虽然不太常见)。的格式ls
无法区分这一点。
例子:
test.sh -> all.sh -> list.sh
名为 的文件test.sh
可能链接到all.sh -> list.sh
或名为 的文件test.sh -> all.sh
可能链接到list.sh
。
我希望这对你的情况有帮助。为了得到完美的解决方案,你应该使用脚本(sh、PHP、Perl)。
答案2
如果你不需要跨文件系统检查,你可以使用符号链接:
symlinks -rsv / | grep test_off.sh | tee >(wc -l)
以上应该输出指向文件的链接列表并计算其数量:
absolute: /usr/bin/test_off.sh -> /usr/share/acpi_call/test_off.sh
absolute: /root/linkone -> /usr/share/acpi_call/test_off.sh
relative: /root/rellinktwo -> ../usr/share/acpi_call/test_off.sh
3
有关更多详细信息,请参阅 man symlinks。