检查文件扩展名为“.ini”的文件是否存在,shell

时间:2012-09-12 13:31:20

标签: file shell exists file-extension

如何(使用shell)检查.ini中是否存在文件扩展名为/dir的文件? 什么是最快的方式?谢谢!

3 个答案:

答案 0 :(得分:2)

我发现这个有用来验证现有的jpeg文件。

if ls /path/*.jpg &> /dev/null; then
    #do something with existing files
else
    echo "files do not exist"
fi

答案 1 :(得分:1)

set -- /dir/*.ini
case $1 in
  ('/dir/*.ini') echo "No ini files here.";;
  (*)            echo "Found $# ini files: $@";;
esac

看吧!没有叉子!对于lsfind和朋友来说,这应该可以通过一百万个CPU周期击败任何带有分叉的解决方案。

现在这里有一个小问题。你能发现它吗?好的,如果/dir包含一个名为*.ini的文件(star,dot,ini),会发生什么?上面会给你一个假阴性:它报告没有 ini文件,尽管有一个。如果你想为这种情况做准备(你应该,因为你是一个细心的程序员,注意细节,没有你的代码,对吗?),你稍微修改第一个案例来阅读

('/dir/*.ini')
  if test -f '/dir/*.ini'; then
    echo "Wow, there's a plain file named '/dir/*.ini'!"
  else
    echo "No ini files here."
  fi;;

答案 2 :(得分:0)

find /dir/ -iname '*.ini'。如果您不想搜索子目录,请在-maxdepth 1

之后添加/dir/