测试目录是否包含一组基于扩展名的文件

测试目录是否包含一组基于扩展名的文件

如何测试目录以查看它是否包含通常用于网站的文件?我搜索并找到了如何一次测试一个扩展,这导致我这样做:

c1=`ls -1 /var/www/*.htm 2>/dev/null | wc -l`
c2=`ls -1 /var/www/*.html 2>/dev/null | wc -l`
c3=`ls -1 /var/www/*.php 2>/dev/null | wc -l`
if [ $c1 != 0 ] || [ $c2 != 0 ] || [ $c3 != 0 ]; then    
    echo true
fi 

然而,这并不让我觉得特别有效,因为显然有很多不同的文件类型可用于网站。有没有case我可以使用的声明?

答案1

完全根据您的示例,您可以稍微简化代码

found=$(find . -maxdepth 1 -type f \( -name '*.htm -o -name '*.html' -o -name '*.php' \) | wc -l)
if [[ $found -gt 0 ]]
then
    echo Possibly a website
fi

或者

found=$(ls -d *.htm *.html *.php 2>/dev/null)
if [[ -n "$found" ]]
then
    echo Possibly a website
fi

甚至

echo Possibly a website

相关内容