Shell
通過萬用字元模式查找程序名稱
我正在嘗試編寫一個腳本來嘗試查找是否安裝了某個程序。假設該程序被稱為 myprog。問題是程序可以以不同的格式命名,例如“prefix-myprog”、“myprog”和“prefix_myprog”。如果我使用:
which myprog
那麼命令行將返回正確的位置,如果它被命名為 EXACTLY,myprog。
有沒有辦法可以使用各種萬用字元找到所有可能的實例?
謝謝
find /bin /sbin /usr -type f | grep -i myprog
查找目錄 /bin、/sbin 和 /usr 中的所有文件,然後過濾“myprog”。
man find
man grep
apropos myprog
也很有用。
man apropos
或者怎麼樣
locate -r myprog
?
man locate
$PATH
您可以依次遍歷每個目錄中的條目並展開萬用字元。set -f; IFS=: for dir in $PATH; do ls $dir/*myprog* 2>/dev/null done set +f; unset IFS
在 zsh 中,這要簡單得多:
ls $path/*myprog*(N)
順便說一句,避免
which
,使用type
或command -v
代替。