删除'找到'的输出命令失败

时间:2018-02-01 05:21:02

标签: shell unix find

我目前正在编写一个脚本,它将在PATH中搜索特定的程序名称,然后输出该程序的所有路径(可能有多个可执行文件)。 我提出的是find $path -name programName。给定测试输入,虽然它确实生成了正确的输出,但它也为没有程序的路径中的目录输出No such file or directory行。有没有办法删除它?

谢谢!

编辑:此脚本旨在模仿"其中-a"命令,如果有帮助

2 个答案:

答案 0 :(得分:3)

由于您正在寻找程序,我建议您使用以下命令:

find "$path" -type f -name programName 2>/dev/null

2>/dev/nullstderr静音 (更多信息: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