【问题标题】:Checking if file with file-extension '.ini' exists, shell检查文件扩展名为“.ini”的文件是否存在,shell
【发布时间】:2012-09-12 13:31:20
【问题描述】:

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

【问题讨论】:

    标签: file shell exists file-extension


    【解决方案1】:

    我发现这个对于验证现有 jpeg 文件很有用。

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

    【讨论】:

      【解决方案2】:
      set -- /dir/*.ini
      case $1 in
        ('/dir/*.ini') echo "No ini files here.";;
        (*)            echo "Found $# ini files: $@";;
      esac
      

      看,妈!没有叉子!这应该比任何带有lsfind 和朋友的解决方案都要多出一百万个 CPU 周期。

      现在这里有一个小问题。你能发现吗?好的,如果/dir 包含一个名为*.ini 的文件(星号、点号、ini),会发生什么?以上将给你一个假阴性:它报告no 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;;
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-30
          • 1970-01-01
          • 2012-08-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-05
          • 1970-01-01
          相关资源
          最近更新 更多