2012-09-12 50 views

回答

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

看馬添加-maxdepth 1!沒有叉子!這應該超過一百萬個CPU週期,任何解決方案都可以使用分號爲ls,find和朋友。

現在這裏有一個小問題。你能發現它嗎?好的,如果/dir包含一個名爲*.ini的文件(星號,圓點,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;; 
0

find /dir/ -iname '*.ini'。如果你想不搜索子目錄,後/dir/

2

我發現這一個有用來驗證現有的jpeg文件。

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