有没有办法快速知道 my 中的可执行文件是否$PATH包含特定字符串?例如,我想快速列出包含SRA.
我问的原因是我有几个包含角色的剧本SRA。问题是我总是忘记文件的起始字符(如果我记得,我会使用制表符补全来找到它)。
您可以将所有路径存储在一个数组中,然后find与它的各种选项一起使用:
IFS=":" read -ra paths <<< "$PATH"
find "${paths[@]}" -type f -executable -name '*SRA*'
Run Code Online (Sandbox Code Playgroud)
IFS=":" read -ra paths <<< "$PATH"将所有路径读取到数组中,暂时将字段分隔符设置为:,如为单个语句设置 IFS中所示。-type f寻找文件。-executable查找可执行文件。-perm +111您可以在 OSX 中使用(源代码)。由于该-executable选项在 FreeBSD 或 OSX 中不可用,ghoti 强烈建议使用该-perm选项:
find -perm -o=x,-g=x,-u=x
Run Code Online (Sandbox Code Playgroud)