我可以编写一个脚本来组合使用 find、ldd 和 grep,但想找出是否有更好的方法。
例如,如果库是 /usr/lib/libmhash.so.2,我想知道系统上链接到它的所有二进制文件。
答案1
我不知道有没有一种标准方法可以在不检查每个二进制文件的情况下做到这一点。你可以做的是查看包管理器中的依赖关系信息,尽管这不太一样。如果你使用的是基于 Debian 的发行版,apt-cache showpkg <package>
则会显示“反向依赖关系”等内容 - 依赖该包的所有包的列表。
例如,libmhash2
我的系统依赖于以下软件包:
Reverse Depends:
libmhash2:i386,libmhash2
yubiserver,libmhash2
wxhexeditor,libmhash2
wit,libmhash2
vdetelweb,libmhash2
thunar-gtkhash,libmhash2
steghide,libmhash2
python-mhash-dbg,libmhash2
python-mhash,libmhash2
proxytunnel,libmhash2
passwordmaker-cli,libmhash2
nd,libmhash2
nautilus-gtkhash,libmhash2
mcrypt,libmhash2 0.8.16-1
mbuffer,libmhash2
libgringotts2,libmhash2
libcsync0,libmhash2
gtkhash,libmhash2
cd5,libmhash2
aide-dynamic,libmhash2
librasqal3,libmhash2
libmhash-dev,libmhash2 0.9.9.9-2
当然,这不会告诉您有关特定二进制文件的信息,但它可能会解决您的问题(或至少是其他人的问题)。如果没有,您可以随时使用find
// ldd
。grep