如何在 shell 脚本中使用“find”从当前目录进行搜索?

如何在 shell 脚本中使用“find”从当前目录进行搜索?

我希望程序看起来像这样:

read a
if[ find . name $a ]; then
  echo "You found the file"
else "You haven t found the file"
fi

答案1

无论是否找到任何内容,find始终返回 true。您可以使用grep以下方法确定是否find找到内容:

read -r a
if find . -maxdepth 1 -name "$a" -print -quit | grep -q . 
then
  echo "You found the file"
else 
  echo "You haven't found the file"
fi

-print -quit正如 Eliah 所说,在第一次匹配后退出 ( ) 应该可以提高性能。使用-maxdepth 1将结果限制在当前目录中 - 但这样find做有点过头了。

答案2

如果不使用该find命令,使用test命令(或其缩写形式[... ])会更容易,恕我直言。使用teste开关可以完成您想要的操作。

#!/bin/bash
read -r a
if [[ -e $a ]]; then
    echo "You found the file"
else
    echo "You haven't found the file"
fi

但请注意,test只会在当前目录中查找文件,而不是在任何子目录中查找(感谢 EliahKagan 的提醒)。

您可以testBash 黑客维基

相关内容