SORU
15 HAZİRAN 2011, ÇARŞAMBA


Eğer bir dosya kabuk joker ile varsa kontrol edin

Eğer bir dosya olup olmadığını kontrol etmek için çalışıyorum, ama bir joker ile birlikteyim. İşte benim örnek:

if [ -f "xorg-x11-fonts*" ]; then
    printf "BLAH"
fi

Ayrıca çift tırnak işaretleri olmadan denedim.

CEVAP
15 HAZİRAN 2011, ÇARŞAMBA


En basit ls dönüş değeri güvenmek olmalıdır (döndürür dosyaları yok sıfır olmayan):

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi

ls çıkış tamamen sessiz yapmak için oraya yönlendirdim.


EDİT: bu cevap var biraz dikkat (ve çok yararlı eleştirmen açıklamalar olarak yorumlar), burada bir iyileştirme de dayanır kısım genişleme, ama önler kullanım ls:

for f in /path/to/your/files*; do

    ## Check if the glob gets expanded to existing files.
    ## If not, f here will be exactly the pattern above
    ## and the exists test will evaluate to false.
    [ -e "$f" ] && echo "files do exist" || echo "files do not exist"

    ## This is all we needed to know, so we can break after the first iteration
    break
done

Bu @grok12 cevabı çok benzer, ama bütün liste boyunca gereksiz yineleme önler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Khoury

    Adam Khoury

    23 Ocak 2008
  • Fullscreen

    Fullscreen

    23 Mart 2006
  • Showtime

    Showtime

    21 HAZİRAN 2006