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

dig*_*123 1 bash shell find exitstatus

我打算在脚本中使用Linux"find"命令.如果"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
#
Run Code Online (Sandbox Code Playgroud)

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

cho*_*oba 5

find无法找到指定的文件时,不会更改退出状态.您可以将其输出通过管道grep检查它输出任何内容:

if find /usr/bin /usr/sbin /bin /sbin -name ntpd | grep -q ^ ; then
    echo Found
else
    echo Not found
fi
Run Code Online (Sandbox Code Playgroud)