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

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于检查文件扩展名为“.ini”的文件是不是存在,shell的主要内容,如果未能解决你的问题,请参考以下文章

如何检查服务器上是不是存在任何pdf文件?

如何检查文件是不是存在没有PHP中的扩展名?

检查xml(没有文件扩展名)是不是存在的最佳方法

检查目录是不是包含具有给定扩展名的文件

PHP - 在不知道扩展名的情况下检查文件是不是存在

如何仅使用 (*.pdf) 之类的扩展名检查 php 中是不是存在文件