检查文件扩展名为“.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
看,妈!没有叉子!这应该比任何带有ls
、find
和朋友的解决方案都要多出一百万个 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的主要内容,如果未能解决你的问题,请参考以下文章