我目前正在编写一个脚本,它将在PATH中搜索特定的程序名称,然后输出该程序的所有路径(可能有多个可执行文件)。
我提出的是find $path -name programName
。给定测试输入,虽然它确实生成了正确的输出,但它也为没有程序的路径中的目录输出No such file or directory
行。有没有办法删除它?
谢谢!
编辑:此脚本旨在模仿"其中-a"命令,如果有帮助
答案 0 :(得分:3)
由于您正在寻找程序,我建议您使用以下命令:
find "$path" -type f -name programName 2>/dev/null
2>/dev/null
将stderr
静音
(更多信息:doc)。
强制find
仅返回文件,因为您可能有一个名为programName
的文件夹,当前命令将由find命令拾取。
此外,您可以添加的是-executable
选项,如果不可用,请使用:-perm /u+x
添加您要查找文件的约束,这些文件应该是可执行的。
find "$path" -type f -name programName -executable 2>/dev/null
答案 1 :(得分:2)
尝试:
find "$path" -name programName -type f 2>/dev/null