#!/bin/bash # SCRIPT DESCRIPTION: # This bash script lists all commands/executables included in a package defined in PACKAGES array below. ################################################### # System packages to look for commands in: PACKAGES=(coreutils findutils util-linux) # Debian-specific command syntax for listing files belonging to a package # This syntax does not apply in other Linux distributions using other than dpkg solutions. LIST_COMMAND='dpkg -L' ################################################### # Loop through each package listed in PACKAGES bash array above # For each package, use another loop to go through each file listed in pathes defined by file mimetype # for pkg in ${PACKAGES[*]}; do for file in $($LIST_COMMAND $pkg); do WHATBIN=$(file --mime-type $file | grep x\-sharedlib | awk -F ":" '{print $1}' | sed '/\.so/d' | awk -F '/' '{print $(NF)}') # whatis command gets confused with an empty input. Avoid these situations. if [[ ! -z $WHATBIN ]]; then whatis $WHATBIN | sed 's/([0-9a-zA-Z])//' fi done done | sort ################################################### ## DEPRECATED ## All bin folders listed in PATH global variable. ## Remove quotation marks with sed ## Replace : with |\ for grep command ## Add each directory path into the exdirs array ## Start from array index 0 (dirnum) and increase the number in the loop with 'let dirnum++' command ## #dirnum=0 #for exdir in $(export -p | grep 'declare -x PATH' | awk -F '=' '{print $2}' | sed 's/"//g' | tr ':' '|\'); do # exdirs[$dirnum]=$exdir # let dirnum++ #done ## DEPRECATED ## DEPRECATED # for cmd in $($LIST_COMMAND $pkg | grep -E "${exdirs[*]}" | awk -F '/' '{print $(NF)}'); do # whatis $cmd | sed 's/([0-9a-zA-Z])//' # done | sort ## DEPRECATED