#!/bin/bash main() { if [ $# -lt 2 ]; then echo "${0}: Usage: PATH LIBRARY ..." return 2 fi local root="${1}" shift if [ ! -d "${root}" ]; then echo "${0}: ${root}: No such file or directory" return 1 fi local libraries="$@" # Build the regex filter local filter="(${libraries[*]// /|})" local file for file in $(find "${root}" -xdev -type f -executable); do if readelf -d "${file}" 2>/dev/null | grep -qE "NEEDED.*\[${filter}\]$"; then echo "${file}" fi done return 0 } main "$@" || exit $?