【问题标题】:How can I search for an executable in $PATH with a shell script如何使用 shell 脚本在 $PATH 中搜索可执行文件
【发布时间】:2018-11-22 10:31:39
【问题描述】:

$PATH 包含所有被搜索的目录,我怎样才能找到一个特定的可执行文件,包括通配符,假设我想找到所有包含字符串“sub”的可执行文件?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • $PATH 变量中的目录是如何分隔的?像往常一样使用冒号:例如/tmp/a:/tmp/b:/tmp/c?还是换行?还有其他分隔符吗?

标签: bash executable


【解决方案1】:
for directory in $(echo $PATH | tr ':' '\n'); do
    find $directory -type f -perm /111 -ls
done

解释:

echo $PATH | tr ':' '\n'

将 $PATH 中的目录每行分成一个目录。

find $directory -type f -perm /111 -ls

并遍历每个目录并“查找”具有所有者或组或其他人可执行权限的常规文件(-type f)(-perm /111),并列出它们(-ls)。

【讨论】:

  • PATH 中的目录可以包含将打破此循环的空格和模式元字符。
  • @chepner:非常正确,但我只是想通过一个简单的例子来展示如何解决这个问题,而不是现实世界的实现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 2010-11-16
  • 1970-01-01
相关资源
最近更新 更多