如何列出鏈接到libssl的我的Red Hat Linux系統上的所有可執行文件?我可以親近:確定哪些可執行文件鏈接到Linux上的特定共享庫
find/-type f -perm /a+x -exec ldd {} \; | grep libssl
LDD顯示我的庫與可執行鏈接,但包含庫名行不還顯示文件名,所以雖然我得到了很多的比賽使用grep,我不知道如何退出匹配發生的可執行文件的名稱。任何幫助將不勝感激。
如何列出鏈接到libssl的我的Red Hat Linux系統上的所有可執行文件?我可以親近:確定哪些可執行文件鏈接到Linux上的特定共享庫
find/-type f -perm /a+x -exec ldd {} \; | grep libssl
LDD顯示我的庫與可執行鏈接,但包含庫名行不還顯示文件名,所以雖然我得到了很多的比賽使用grep,我不知道如何退出匹配發生的可執行文件的名稱。任何幫助將不勝感激。
find/-type f -perm /a+x -print0 |
while read -d $'\0' FILE; do
ldd "$FILE" | grep -q libssl && echo "$FILE"
done
find /usr/bin/ -type f -perm /a+x | while read i; do match=`ldd $i | grep libssl`; [[ $match ]] && echo $i; done
而不是使用-exec,管while循環,並檢查匹配時重複的文件名前。或者,您可以使用()或真正的if/then/fi塊將「ldd $ i」添加到匹配檢查中。
find/-type f -perm /a+x -xdev | while read filename ; do
if ldd "$filename" | grep -q "libssl" ; then
echo "$filename"
fi
done
的-xdev
使得找到留在同一個文件系統(即它不會潛入的/ proc或/ SYS)。注意:如果在Mac OS X上構建這個,你的-perm不能在這裏工作,所以我不知道它是否正確。而不是ldd
我用otool -L
但結果應該是相同的。
也許會加上'-xdev',然後這可能是最強大的解決方案,我想。 – DarkDust 2010-08-24 17:47:58
謝謝,這工作完美! – Steven 2010-08-24 18:34:00