【问题标题】:How can I get a list of programs in my path from Perl?如何从 Perl 获取路径中的程序列表?
【发布时间】:2009-07-15 12:52:05
【问题描述】:

如何从 Perl 列出所有可用的 UNIX 命令?

【问题讨论】:

  • 您是否尝试过在 $ENV{PATH} 中查找可执行文件?你试过什么?这是作业吗?
  • 首先你必须定义“UNIX命令”。
  • 我得到了答案...我没想到$ENV{path}
  • 您可能会考虑的一件事实际上是学习 Perl。您的问题表明您甚至没有尝试自己解决问题。一次或两次没关系,但这几乎是你所有的 SO 历史。

标签: perl unix path


【解决方案1】:
perl -MFile::Find -le 'find sub {print if -f and -x _}, split ":", $ENV{PATH}'

此代码在路径 (split ":", $ENV{PATH}) 中的每个目录中查找可执行 (-f) 的文件 (-x),并打印找到的文件。您可能想了解

不搜索PATH 中目录的子目录的替代方法是

perl -le '-f and -x _ and print for map { glob "$_/*" } split ":", $ENV{PATH}'

【讨论】:

  • @ephemient 好点,不过我通常看不到 bin 目录中的子目录。
  • 我的 ~/bin 是一个 git 存储库,有一种方法可以在你的 bin 目录中获取子目录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 2020-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多