一般linux可执行的命令在环境变量PATH的值的目录中
可以在这些目录下寻找以bz开头的命令
方法是使用grep配合正则表达式来完成
下面是一个例子
#!/bin/bashfor i in $(echo $PATH | sed 's/:/ /g')
do
for n in $(ls $i)
do
echo $n | grep -oP '^bz.*'
done
done
exit 0
该代码就是遍历PATH环境变量里的每一个目录中的所有命令
然后通过grep的配合正则表达式找出以bz开头的文件
当然一般情况下这些目录下的文件是可执行的程序
但也有可能会出现非可执行的程序
这种就不能算作是命令了
这样就需要在进行匹配之前判断文件是否为可执行程序
一个简单的方法可以使用file命令来完成
if file $n > /dev/nullthen
echo $n | grep -oP '^bz.*'
fi
除了以上方法
像是bash或者zsh等都有tab自动补全的功能
可以在终端上输入bz然后通过按tab进行补全会列出所有以bz开头的命令
对于那些不在PATH环境变量里的目录
需要手动指定目录的集合
所以要确定系统中有多少以bz开头的命令首先要明确自己的目标
是那些只在PATH环境变量目录里的命令还是包括其它目录甚至是整个/分区里所有的目录
然后再根据具体情况进行查找
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)