如果递归查找 ext,则,否则在 unix 上

如果递归查找 ext,则,否则在 unix 上

这是我通常使用的。但我需要使用 then 和 else 递归查找扩展。这个的问题是它不是递归的。

if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
    :
else
    :
fi

答案1

使用find它代替 ls。如果您有 GNU find,您可以-quit在第一次匹配后使用它退出。然后只需检查它是否返回任何结果。

脚本看起来类似于

if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
    :
else
    :
fi

使用 -iname 而不是 -name 进行不区分大小写的搜索。

相关内容