Linux find命令的退出状态始终显示成功

时间:2018-02-15 07:03:59

标签: bash shell find exitstatus

我打算使用Linux" find"从脚本内部命令。如果"发现"我只是感到困扰命令在所提到的任何路径中查找可执行文件,而不是确切的路径。我正在测试以下内容:

find /usr/bin /usr/sbin /bin /sbin -name ntpd > /dev/null 2>&1; echo $?
0

find /usr/bin /usr/sbin /bin /sbin -name ntp > /dev/null 2>&1; echo $?
0

find /usr/bin /usr/sbin /bin /sbin -name ntpd
/usr/sbin/ntpd

# find /usr/bin /usr/sbin /bin /sbin -name ntp
#

为什么find在两种情况下都会给出0的退出状态,无论是找到还是找不到可执行文件

1 个答案:

答案 0 :(得分:5)

无法找到指定文件时,

find不会更改退出状态。您可以将其输出通过管道传输到grep以检查它是否输出任何内容:

if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
    echo Found
else
    echo Not found
fi