|
#!/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
|