Linux查找命令的退出状态总是显示成功



i打算从脚本内部使用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的退出状态

find当找不到指定文件时,不会更改退出状态。您可以将其输出输送到grep来检查其输出的任何内容:

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

最新更新